mongo中查詢Array類型的字段中元素個數


I have a MongoDB collection with documents in the following format:

{ "_id" : ObjectId("4e8ae86d08101908e1000001"), "name" : ["Name"], "zipcode" : ["2223"] } { "_id" : ObjectId("4e8ae86d08101908e1000002"), "name" : ["Another ", "Name"], "zipcode" : ["2224"] }

I can currently get documents that match a specific array size:

db.accommodations.find({ name : { $size : 2 }}) 

This correctly returns the documents with 2 elements in the name array. However, I can't do a $gtcommand to return all documents where the name field has an array size of greater than 2:

db.accommodations.find({ name : { $size: { $gt : 1 } }}) 

How can I select all documents with a name array of a size greater than one (preferably without having to modify the current data structure)?

 

解決辦法:

1.db.accommodations.find( { $where: "this.name.length > 1" } );

2.db.accommodations.find({'name.1': {$exists: true}})

說明:name.1是name字段(Array類型)的第二個索引(從0開始)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM