MongoDBクエリーテーブルの複数フィールドは重複データを組み合わせて削除します.
1930 ワード
参考:https://blog.csdn.net/liu911025/article/details/80882270 https://blog.csdn.net/qq_233375733/articale/detail/83147854
mongodb(js)美化:https://beautifier.io/
1.クエリーテーブルの同じフィールドは、titleとcurrentDayの組み合わせで照会し、マッチング数が1より大きいデータ
mongodb(js)美化:https://beautifier.io/
1.クエリーテーブルの同じフィールドは、titleとcurrentDayの組み合わせで照会し、マッチング数が1より大きいデータ
db.getCollection('biddings').aggregate([{
'$group': {
'_id': {
'title': '$title',
'currentDay': '$currentDay'
},
'uniqueIds': {
'$addToSet': '$_id'
},
'count': {
'$sum': 1
}
}
},
{
'$match': {
'count': {
'$gt': 1
}
}
}
], {
allowDiskUse: true
})
2.表の同じデータクエリと削除文を削除し、削除文の後にforEachサイクルを追加します.db.getCollection('biddings').aggregate([{
'$group': {
'_id': {
'title': '$title',
'currentDay': '$currentDay'
},
'uniqueIds': {
'$addToSet': '$_id'
},
'count': {
'$sum': 1
}
}
},
{
'$match': {
'count': {
'$gt': 1
}
}
}
], {
allowDiskUse: true
}).forEach(function(doc) {
doc.uniqueIds.shift();
db.getCollection('biddings').remove({
_id: {
$in: doc.uniqueIds
}
});
})
説明:1. bqyId , $group , $addToSet _id
2. $match 1
3.doc.uniqueIds.shift(); ; _id,
4. forEach _id
$addToSet 。 ,$addToSet , 。