我的收藏是这样的
{
"name":""
"type":""
"arr":[
{
"type":""
"other field"
...
},
{
"type":""
"other field"
...
}
}
我的条件是输入参数是名称。所以基于名称我必须获取文档,另外一个条件是数组外部和内部的类型应该匹配..需要单独获取这些记录..如何实现这一点
性能不佳,但可以正常工作(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
}
}
}
}
)
ps 聚合框架已经解决了类比问题,但是在这种情况下,恕我直言,只有 $where 子句可用
如果我对您的理解正确,这就是您获得所需结果的方式
{name:"",type:"",arr.type:""}
您可以输入所需的值,它将返回所有匹配的记录。