带文档的条件集合:
{ _id: ObjectId(...), value: 19293 },
{ _id: ObjectId(...), value: 32123 }
我想删除所有文档 where value % 1000 == 123
,以便集合留下:
{ _id: ObjectId(...), value: 19293 }
我知道如何找到正确的文件aggregate
-
db.test.aggregate([
{ $addFields: { filterValue: { $mod: ["$value", 1000] } } },
{ $match: { filterValue: 123 } }
])
然后你可以删除你找到的东西。但我有兴趣立即删除 中的必要文件db.test.deleteMany({ ??? })
,无需进行初步搜索。我不能这样做:
db.test.deleteMany({
{ $mod: ["$value", 1000] }: 123
})
怎么做才对?
您可以使用$expr运算符:
资源