我有以下文件:
{
"_id" : "bfc523ad-c09d-4be8-99c2-64a709cf95ab",
"field1" : {
"c1" : "bfc523ad-c09d-4be8-99c2-64a709cf95ab",
"c2" : "pl_PowerList_bfc523adc09d4be899c264a709cf95ab",
},
"Columns" : [
{
"name" : "abc49777",
"lookup":{
"id":"bfc523ad-c09d-4be8-99c2-64a709cf95ab"
}
},
{
"name" : "abc7846",
"lookup":{
"id":"cgc523ad-c09d-4be8-99c2-64a709cf95xy"
}
}
]
}
现在,我要获取所有field1.c1值等于Columns.lookup.id的文档(在任一列中)。我尝试了以下查询:
db.mycollection.find({$where:"this.field1.c1 == this.Columns.lookup.id"})
当我执行上述查询时,我收到错误消息,指出字段ID未定义。我希望所有此类文档中至少有一列具有与该文档的field1.c1相同的lookup.id。我该怎么做?
您可以尝试以下方法:
db.mycollection.find(
{ $where:
function() {
var array = this.Columns;
for (var i in array) {
if(array[i].lookup.id == this.field1.c1) {
return true;
}
}
return false;
}
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句