MongoDB में सरणी फील्ड खाली नहीं है जांचने के लिए $size ऑपरेटर के साथ $not का उपयोग करें।
उदाहरण
विभिन्न सरणी आकार वाले दस्तावेज़ बनाएं:
> db.checkIfListIsNotEmptyDemo.insertOne({"UserFriendGroup":["John","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd99e8bf3115999ed511f7") }
> db.checkIfListIsNotEmptyDemo.insertOne({"UserFriendGroup":["Carol"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd99e9bf3115999ed511f8") }
> db.checkIfListIsNotEmptyDemo.insertOne({"UserFriendGroup":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd99ebbf3115999ed511f9") }
> db.checkIfListIsNotEmptyDemo.insertOne({"UserFriendGroup":[null]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd99f2bf3115999ed511fa") }
> db.checkIfListIsNotEmptyDemo.insertOne({"UserFriendGroup":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdd99f6bf3115999ed511fb") }
सभी दस्तावेज़ देखें:
> db.checkIfListIsNotEmptyDemo.find().pretty();
{ "_id" : ObjectId("5cdd99e8bf3115999ed511f7"), "UserFriendGroup" : [ "John", "David" ] }
{ "_id" : ObjectId("5cdd99e9bf3115999ed511f8"), "UserFriendGroup" : [ "Carol" ] }
{ "_id" : ObjectId("5cdd99ebbf3115999ed511f9"), "UserFriendGroup" : [ ] }
{ "_id" : ObjectId("5cdd99f2bf3115999ed511fa"), "UserFriendGroup" : [ null ] }
{ "_id" : ObjectId("5cdd99f6bf3115999ed511fb"), "UserFriendGroup" : [ ] }
खाली नहीं सरणी वाले दस्तावेज़ ढूंढें
> db.checkIfListIsNotEmptyDemo.find({'UserFriendGroup': {'$not': {'$size': 0}}});
आउटपुट:
{ "_id" : ObjectId("5cdd99e8bf3115999ed511f7"), "UserFriendGroup" : [ "John", "David" ] }
{ "_id" : ObjectId("5cdd99e9bf3115999ed511f8"), "UserFriendGroup" : [ "Carol" ] }
{ "_id" : ObjectId("5cdd99f2bf3115999ed511fa"), "UserFriendGroup" : [ null ] }
व्याख्या:
$size: 0- आकार 0 वाली सरणी से मेल खाता है (खाली सरणी)$not- इसे उलट देता है, यानी आकार 0 नहीं वाली सरणीnullवाला दस्तावेज़ शामिल है क्योंकि सरणी आकार 1 है (null एक तत्व है)
विकल्प: $exists + $ne
db.collection.find({field: {$exists: true, $ne: []}})
यह तरीका भी काम करता है लेकिन $size अधिक स्पष्ट है। ध्यान दें कि $size इंडेक्स का उपयोग नहीं कर सकता।