mongo中的所有文档都是如下的格式,我如果想查询items中某个值是否存在,要怎样写查询语句?
"items" : [
{
"subject" : "yuwen",
"time" : "上午",
"teacher" : "A"
},
{
"subject" : "shuxue",
"time" : "下午",
"teacher" : "B"
},
{
"subject" : "english",
"time" : "下午",
"teacher" : "B"
},
{
"subject" : "dili",
"time" : "上午",
"teacher" : "C"
}
]
比如我想查询存在下面值的所有文档,
{
"subject" : "shuxue",
"time" : "下午",
"teacher" : "B"
}
这样写不起作用:
db.test.find({ "$elemMatch":{"items.subject":"shuxue","$exists":true} });
也就是说‘$elemMatch’与‘$exists’组合起来,怎样使用?
db.test.find({"items.subject":"shuxue"}) 不可以吗?
整个mongo中有很多类似这样的文档,我怎样找出不包含这个部分的文档?
{
"subject" : "shuxue",
"time" : "下午",
"teacher" : "B"
}
@营营: 你的输入输出描述的很不清楚。
“我怎样找出不包含这个部分的文档?”
是想说 subject = "shuxue" 但是 time 不能为下午, teacher 不为 B 吗?
用的$where ,虽然效率低点,得到结果最重要,‘$where’真是mongo查询的终极武器啊
db.childtable.find({ "$where":function(){
for(var current in this){
......
}
}
});