使用join的Mongo DB查询

时间:2016-05-11 03:02:31

标签: mongodb

我有两个收藏 Vitamin_Fruits和Fruits系列

vitamin_fruits collection:

{
"_id" : ObjectId("560bf00895977916c17869ff1"),
fruit_name:"apple",
"vitamin":"vitamin E",

}

{
"_id" : ObjectId("560bf00895977916c17869fgg3"),
fruit_name:"orange",
"vitamin":"vitamin C",

}

水果收集:

{

 "_id" : ObjectId("54d8ced69d1ecc14dc8fb658")
 fruit_name:"orange",
 vitamins:["vitamin C","vitamin D"],
 fruit_edible:true,
 has_seeds:true

}
{

 "_id" : ObjectId("54d8ced69d1ecc14895b6c2")
 fruit_name:"apple",
 vitamins:["vitamin C","vitamin E"],
 fruit_edible:true,
 has_seeds:true

}

如果fruit_name是苹果,如果维生素水果中的维生素存在于水果收集中,我想从维生素收集中删除一个条目

我试过像

这样的东西
var a= db.fruits.find({fruit_name:"apple"},{_id:0,vitamins:1})

db.vitamin_fruits.find({fruit_name:"apple"}
,{ _id:0,"vitamin" :1}).forEach(function(c){if( a.indexOf(c) >-1)  {    
db.vitamin_fruits.remove({vitamin:c})}
})

1 个答案:

答案 0 :(得分:1)

有一种简单的方法可以在不循环的情况下完成此操作。

{{1}}

第一个查询将返回一个包含不同维生素的数组,其中fruit_name为“apple”。第二个查询将从vitamin_fruits中删除文件,其中fruit_name为'apple'且维生素属于数组'a'。