-
Does MongoDB's $in clause guarantee order?
over 9 years ago
-
about 9 years ago
<p>Please check this one</p> -
over 9 years ago
Hello All,
In this blog we will discuss whether MongoDB's $in clause guarantee order or not.
The $in operator selects the documents where the value of a field equals any value in the specified array. To specify an $in expression, use the following prototype:
Below Code demonstrates how keytags collection values are saved in collection in natural order.
Find Clause-
- > db.keytags.find().pretty()
- {
- "__v" : 0,
- "_id" : ObjectId("56499d341af7854313c2fb8a"),
- "additionalProperties" : {
- "wifiTagDescription" : "",
- "networkType" : "WEP",
- "password" : "Ankit11",
- "ssid" : "ankit.chettri%40evontech.com"
- },
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "createdAt" : ISODate("2015-11-16T09:09:08.923Z"),
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "dataChecksum" : "3d794b6847d0e7b2fcc355462b2e1d95",
- "deleted" : "false",
- "domain" : "evontech.com",
- "donotIndex" : false,
- "isDomainCard" : true,
- "kiTAG" : "connect#evontech.com",
- "lastIndexedOn" : null,
- "manualUpdate" : true,
- "name" : "connect",
- "relatedKeywords" : "",
- "seo" : true,
- "status" : "ACTIVE",
- "title" : "TEST",
- "type" : "Wi-Fi",
- "updatedAt" : ISODate("2014-12-17T06:17:17.461Z")
- }
- {
- "__v" : 0,
- "_id" : ObjectId("55c9cbffcad924c90f3a3e7e"),
- "additionalProperties" : {
- "contentImage" : "",
- "description" : "%3Cp%3Ehello%20test%3C%2Fp%3E%0A",
- "talkback" : true
- },
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "createdAt" : ISODate("2015-08-11T10:18:39.293Z"),
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "dataChecksum" : "ff5baf67be234fcbc789570a2009c4d4",
- "deleted" : "false",
- "domain" : "evontech.com",
- "donotIndex" : false,
- "isDomainCard" : true,
- "kiTAG" : "about#evontech.com",
- "lastIndexedOn" : null,
- "manualUpdate" : true,
- "name" : "about",
- "relatedKeywords" : "",
- "seo" : true,
- "status" : "ACTIVE",
- "title" : "Test",
- "type" : "Content",
- "updatedAt" : ISODate("2015-05-18T06:11:53.687Z")
- }
- {
- "__v" : 0,
- "_id" : ObjectId("564ac5c0171af45e0d72354a"),
- "additionalProperties" : {
- "wifiTagDescription" : "",
- "networkType" : "WEP",
- "password" : "Ankit11",
- "ssid" : "ankit.chettri%40evontech.com"
- },
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "createdAt" : ISODate("2015-11-17T06:14:24.546Z"),
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "dataChecksum" : "d86a0604d8680e0fbc001ac756ea7698",
- "deleted" : "false",
- "domain" : "evontech.com",
- "donotIndex" : false,
- "isDomainCard" : false,
- "kiTAG" : "test#evontech.com",
- "lastIndexedOn" : null,
- "manualUpdate" : true,
- "name" : "test",
- "relatedKeywords" : "",
- "seo" : true,
- "status" : "ACTIVE",
- "title" : "test",
- "type" : "Wi-Fi",
- "updatedAt" : ISODate("2015-11-17T06:32:52.320Z")
- }
- {
- "__v" : 0,
- "_id" : ObjectId("564b21fd5efcf49c204b131f"),
- "additionalProperties" : {
- "urlImage" : "",
- "urlTagDescription" : "%3Cp%3Ethis%20is%20test%3C%2Fp%3E%0A",
- "url" : "http://www.test.com"
- },
- "address" : [ ],
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "createdAt" : ISODate("2015-11-17T12:47:57.870Z"),
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "dataChecksum" : "345674fe5d42fc9e12f6d66ec4cb7f57",
- "deleted" : "564b21fd5efcf49c204b131f",
- "domain" : "evontech.com",
- "donotIndex" : false,
- "isDomainCard" : false,
- "kiTAG" : "testing#evontech.com",
- "lastIndexedOn" : null,
- "manualUpdate" : true,
- "name" : "testing",
- "relatedKeywords" : "",
- "seo" : true,
- "status" : "ACTIVE",
- "title" : "Testing",
- "type" : "URL",
- "updatedAt" : ISODate("2015-11-17T12:47:57.870Z")
- }
- {
- "additionalProperties" : {
- "urlImage" : "",
- "urlTagDescription" : "%3Cp%3ECheck%20One%3C%2Fp%3E%0A",
- "url" : "http://www.test.com"
- },
- "lastIndexedOn" : null,
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "domain" : "evontech.com",
- "relatedKeywords" : "",
- "name" : "check one",
- "kiTAG" : "checkone#evontech.com",
- "type" : "URL",
- "title" : "Check%20One",
- "_id" : ObjectId("564c42fecf3fcc200ec1806a"),
- "status" : "ACTIVE",
- "isDomainCard" : false,
- "donotIndex" : false,
- "dataChecksum" : "8bc462e65c934f6478bf0f41a6f3e30a",
- "manualUpdate" : true,
- "updatedAt" : ISODate("2015-11-18T09:21:02.296Z"),
- "createdAt" : ISODate("2015-11-18T09:21:02.296Z"),
- "deleted" : "false",
- "address" : [ ],
- "seo" : true,
- "__v" : 0
- }
- >
> db.keytags.find().pretty() { "__v" : 0, "_id" : ObjectId("56499d341af7854313c2fb8a"), "additionalProperties" : { "wifiTagDescription" : "", "networkType" : "WEP", "password" : "Ankit11", "ssid" : "ankit.chettri%40evontech.com" }, "businessId" : ObjectId("55c337720545813123acf09f"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "createdAt" : ISODate("2015-11-16T09:09:08.923Z"), "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "dataChecksum" : "3d794b6847d0e7b2fcc355462b2e1d95", "deleted" : "false", "domain" : "evontech.com", "donotIndex" : false, "isDomainCard" : true, "kiTAG" : "connect#evontech.com", "lastIndexedOn" : null, "manualUpdate" : true, "name" : "connect", "relatedKeywords" : "", "seo" : true, "status" : "ACTIVE", "title" : "TEST", "type" : "Wi-Fi", "updatedAt" : ISODate("2014-12-17T06:17:17.461Z") } { "__v" : 0, "_id" : ObjectId("55c9cbffcad924c90f3a3e7e"), "additionalProperties" : { "contentImage" : "", "description" : "%3Cp%3Ehello%20test%3C%2Fp%3E%0A", "talkback" : true }, "businessId" : ObjectId("55c337720545813123acf09f"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "createdAt" : ISODate("2015-08-11T10:18:39.293Z"), "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "dataChecksum" : "ff5baf67be234fcbc789570a2009c4d4", "deleted" : "false", "domain" : "evontech.com", "donotIndex" : false, "isDomainCard" : true, "kiTAG" : "about#evontech.com", "lastIndexedOn" : null, "manualUpdate" : true, "name" : "about", "relatedKeywords" : "", "seo" : true, "status" : "ACTIVE", "title" : "Test", "type" : "Content", "updatedAt" : ISODate("2015-05-18T06:11:53.687Z") } { "__v" : 0, "_id" : ObjectId("564ac5c0171af45e0d72354a"), "additionalProperties" : { "wifiTagDescription" : "", "networkType" : "WEP", "password" : "Ankit11", "ssid" : "ankit.chettri%40evontech.com" }, "businessId" : ObjectId("55c337720545813123acf09f"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "createdAt" : ISODate("2015-11-17T06:14:24.546Z"), "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "dataChecksum" : "d86a0604d8680e0fbc001ac756ea7698", "deleted" : "false", "domain" : "evontech.com", "donotIndex" : false, "isDomainCard" : false, "kiTAG" : "test#evontech.com", "lastIndexedOn" : null, "manualUpdate" : true, "name" : "test", "relatedKeywords" : "", "seo" : true, "status" : "ACTIVE", "title" : "test", "type" : "Wi-Fi", "updatedAt" : ISODate("2015-11-17T06:32:52.320Z") } { "__v" : 0, "_id" : ObjectId("564b21fd5efcf49c204b131f"), "additionalProperties" : { "urlImage" : "", "urlTagDescription" : "%3Cp%3Ethis%20is%20test%3C%2Fp%3E%0A", "url" : "http://www.test.com" }, "address" : [ ], "businessId" : ObjectId("55c337720545813123acf09f"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "createdAt" : ISODate("2015-11-17T12:47:57.870Z"), "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "dataChecksum" : "345674fe5d42fc9e12f6d66ec4cb7f57", "deleted" : "564b21fd5efcf49c204b131f", "domain" : "evontech.com", "donotIndex" : false, "isDomainCard" : false, "kiTAG" : "testing#evontech.com", "lastIndexedOn" : null, "manualUpdate" : true, "name" : "testing", "relatedKeywords" : "", "seo" : true, "status" : "ACTIVE", "title" : "Testing", "type" : "URL", "updatedAt" : ISODate("2015-11-17T12:47:57.870Z") } { "additionalProperties" : { "urlImage" : "", "urlTagDescription" : "%3Cp%3ECheck%20One%3C%2Fp%3E%0A", "url" : "http://www.test.com" }, "lastIndexedOn" : null, "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "businessId" : ObjectId("55c337720545813123acf09f"), "domain" : "evontech.com", "relatedKeywords" : "", "name" : "check one", "kiTAG" : "checkone#evontech.com", "type" : "URL", "title" : "Check%20One", "_id" : ObjectId("564c42fecf3fcc200ec1806a"), "status" : "ACTIVE", "isDomainCard" : false, "donotIndex" : false, "dataChecksum" : "8bc462e65c934f6478bf0f41a6f3e30a", "manualUpdate" : true, "updatedAt" : ISODate("2015-11-18T09:21:02.296Z"), "createdAt" : ISODate("2015-11-18T09:21:02.296Z"), "deleted" : "false", "address" : [ ], "seo" : true, "__v" : 0 } >
Example-
Output-
- {
- "__v" : 0,
- "_id" : ObjectId("56499d341af7854313c2fb8a"),
- "additionalProperties" : {
- "wifiTagDescription" : "",
- "networkType" : "WEP",
- "password" : "Ankit11",
- "ssid" : "ankit.chettri%40evontech.com"
- },
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "createdAt" : ISODate("2015-11-16T09:09:08.923Z"),
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "dataChecksum" : "3d794b6847d0e7b2fcc355462b2e1d95",
- "deleted" : "false",
- "domain" : "evontech.com",
- "donotIndex" : false,
- "isDomainCard" : true,
- "kiTAG" : "connect#evontech.com",
- "lastIndexedOn" : null,
- "manualUpdate" : true,
- "name" : "connect",
- "relatedKeywords" : "",
- "seo" : true,
- "status" : "ACTIVE",
- "title" : "TEST",
- "type" : "Wi-Fi",
- "updatedAt" : ISODate("2014-12-17T06:17:17.461Z")
- }
- {
- "additionalProperties" : {
- "urlImage" : "",
- "urlTagDescription" : "%3Cp%3ECheck%20One%3C%2Fp%3E%0A",
- "url" : "http://www.test.com"
- },
- "lastIndexedOn" : null,
- "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"),
- "clientId" : ObjectId("55c33660cfc3bb56068b4567"),
- "businessId" : ObjectId("55c337720545813123acf09f"),
- "domain" : "evontech.com",
- "relatedKeywords" : "",
- "name" : "check one",
- "kiTAG" : "checkone#evontech.com",
- "type" : "URL",
- "title" : "Check%20One",
- "_id" : ObjectId("564c42fecf3fcc200ec1806a"),
- "status" : "ACTIVE",
- "isDomainCard" : false,
- "donotIndex" : false,
- "dataChecksum" : "8bc462e65c934f6478bf0f41a6f3e30a",
- "manualUpdate" : true,
- "updatedAt" : ISODate("2015-11-18T09:21:02.296Z"),
- "createdAt" : ISODate("2015-11-18T09:21:02.296Z"),
- "deleted" : "false",
- "address" : [ ],
- "seo" : true,
- "__v" : 0
- }
- >
{ "__v" : 0, "_id" : ObjectId("56499d341af7854313c2fb8a"), "additionalProperties" : { "wifiTagDescription" : "", "networkType" : "WEP", "password" : "Ankit11", "ssid" : "ankit.chettri%40evontech.com" }, "businessId" : ObjectId("55c337720545813123acf09f"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "createdAt" : ISODate("2015-11-16T09:09:08.923Z"), "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "dataChecksum" : "3d794b6847d0e7b2fcc355462b2e1d95", "deleted" : "false", "domain" : "evontech.com", "donotIndex" : false, "isDomainCard" : true, "kiTAG" : "connect#evontech.com", "lastIndexedOn" : null, "manualUpdate" : true, "name" : "connect", "relatedKeywords" : "", "seo" : true, "status" : "ACTIVE", "title" : "TEST", "type" : "Wi-Fi", "updatedAt" : ISODate("2014-12-17T06:17:17.461Z") } { "additionalProperties" : { "urlImage" : "", "urlTagDescription" : "%3Cp%3ECheck%20One%3C%2Fp%3E%0A", "url" : "http://www.test.com" }, "lastIndexedOn" : null, "creatorAccountId" : ObjectId("55c3366672a63c6a2246af3e"), "clientId" : ObjectId("55c33660cfc3bb56068b4567"), "businessId" : ObjectId("55c337720545813123acf09f"), "domain" : "evontech.com", "relatedKeywords" : "", "name" : "check one", "kiTAG" : "checkone#evontech.com", "type" : "URL", "title" : "Check%20One", "_id" : ObjectId("564c42fecf3fcc200ec1806a"), "status" : "ACTIVE", "isDomainCard" : false, "donotIndex" : false, "dataChecksum" : "8bc462e65c934f6478bf0f41a6f3e30a", "manualUpdate" : true, "updatedAt" : ISODate("2015-11-18T09:21:02.296Z"), "createdAt" : ISODate("2015-11-18T09:21:02.296Z"), "deleted" : "false", "address" : [ ], "seo" : true, "__v" : 0 } >
However as stated in above the order of the arguments in an array of an $in clause does not fetches the order of how the documents are retrieved as it follows the natural order in which documents are stored as shown in above find clause.
about 9 years ago
1 Comment(s)