您的位置:首页 > 数据库 > Mongodb

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

2016-05-25 09:22 477 查看
{
"_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}}});


  

可以查出结果

也就是说第二种方法不能嵌套使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: