我有两个收藏 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})}
})
答案 0 :(得分:1)
有一种简单的方法可以在不循环的情况下完成此操作。
{{1}}
第一个查询将返回一个包含不同维生素的数组,其中fruit_name为“apple”。第二个查询将从vitamin_fruits中删除文件,其中fruit_name为'apple'且维生素属于数组'a'。