2016-04-25 105 views
2

这可能是一个noobie问题,但是,如何(有效)从一个与另一个集合中找到的文档匹配的mongodb集合中删除所有文档?例如,使用蒙戈外壳,我们可以做到以下几点:从另一个集合中匹配的一个mongo集合中删除文档

db.getCollection('coll1').find({}).forEach(function(doc) { 
    db.getCollection('coll2').remove({ name: doc.name, value: doc.value }); 
    }) 

回答

0

我会建议在删除使用$通过传递名称或ID的数组中$的数组中删除它做。

db.getCollection('coll1').find({}).forEach(function(doc) { 
 
    
 
    // create idsArray from the doc data and pass same in $in 
 
    
 
    db.getCollection('coll2').remove({ id: { $in: idsArray }); 
 
    })

我跳它将帮助。 :)

+0

我不确定这有助于@Lucky。随后的移除调用将在doc.name和doc.value上执行查找匹配,这是我想要消除的两个字段。我有一个我自己的后续建议,加快删除。如果我在'coll2'上创建一个索引,那么remove中的查找操作会更快。 'db.getCollection('coll2')。createIndex({name:1});'' –

相关问题