我的收藏是这样的
{
"name":""
"type":""
"arr":[
{
"type":""
"other field"
...
},
{
"type":""
"other field"
...
}
}
我的病情是 输入参数是名称。 所以基于名称我必须获取文档,还有一个条件是数组外部和内部的类型应匹配.. 需要单独获取这些记录.. 如何实现这个
答案 0 :(得分:0)
如果我理解正确,这就是你得到理想结果的方法
{name:"",type:"",arr.type:""}
您可以输入所需的值,它将返回所有匹配的记录。
答案 1 :(得分:0)
表现不佳,但只是工作(http://docs.mongodb.org/manual/reference/operator/where)
db.SOME_COLLECTION.find({
name:'SOME_VALUE',
$where:
function() {
for(var i = 0; i < obj.arr.length; i++) {
if(obj.arr[i].type==obj.type) {
return obj
}
}
}
}
)
P.S。聚合框架已经解决了类比问题,但在这种情况下,imho只有$ where子句可用