2
我需要在集合中使用bulk
操作,以刪除database
中某些條件的重複項。我試圖使用rawCollection()
但我真的不知道如何。如何在流星中使用rawCollection進行聚合?
這是我需要cron
執行每隔x小時
function removeDups() {
var count = 0,
collection = Beatmaps.rawCollection(),
bulk = collection.initializeUnorderedBulkOp();
collection.aggregate([
{ '$sort': { 'difficultyrating': -1 }},
{ '$group': { '_id': '$beatmapset_id', 'ids': { '$push': '$_id' }, 'count': { '$sum': 1 }}},
{ '$match': { 'count': { '$gt': 1 }}}
]).forEach(function(doc) {
doc.ids.shift();
bulk.find({'_id': { '$in': doc.ids }}).remove();
count++;
if(count === 100) {
bulk.execute();
bulk = collection.initializeUnorderedBulkOp();
}
});
if(count !== 0) {
bulk.execute();
}
}
的代碼,但它會產生一個錯誤:Cannot call method 'forEach' of undefined
那麼,應該怎麼辦?