mongodb用子文檔做為查詢條件的兩種方法


    {
      "_id": ObjectId("52fc6617e97feebe05000000"),
      "age": 28,
      "level": NumberInt(500),
      "name": "name5",
      "person": [
        {
          "level": 5,
          "score": 100,
        "ccc":{"ccc3":56,"fff3":78}
        },
        {
          "level": 7,
          "score": 90,
          "like": "music"
        }
      ],
      "score": NumberInt(500),
      "sex": "男"
    }

  方法一:

db.testColl.find({"person.level":7});

db.testColl.find({"person.ccc.ccc3":56});

  

均可查出結果,就是說這種方法可以嵌套使用!

方法二、使用$elemMatch操作符

db.testColl.find({"person":{"$elemMatch":{"level":5}}});

  

可以查出結果

db.testColl.find({"person":{"$elemMatch":{"ccc":{"$elemMatch":{"ccc3":56}}}}});

  

無法查出結果

db.testColl.find({"person":{"$elemMatch":{"ccc":{"ccc3":56,"fff3":78}}}});

db.testColl.find({"person":{"$elemMatch":{"ccc.ccc3":56}}});

  

可以查出結果
也就是說第二種方法不能嵌套使用。 


免責聲明!

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



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