zoukankan      html  css  js  c++  java
  • 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开始)

  • 相关阅读:
    第三周作业
    #第四周作业
    第十二周作业
    第十一周作业
    第九周作业
    第八周作业
    2019第七周作业
    第三次实验报告及第五次课程总结
    第二次课程总结&学习总结
    第三周实验和学习总结
  • 原文地址:https://www.cnblogs.com/ericgisser/p/4958208.html
Copyright © 2011-2022 走看看