码迷,mamicode.com
首页 > 数据库 > 详细

mongodb用子文档做为查询条件的两种方法

时间:2016-05-25 10:48:57      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

    {
      "_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}}});

  

可以查出结果
也就是说第二种方法不能嵌套使用。 

mongodb用子文档做为查询条件的两种方法

标签:

原文地址:http://www.cnblogs.com/wuxiang/p/5525835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!