我有一个包含10,000个文档的MongoDB集合.我想 for each 包含字符串值的文档添加一个新字段,其中前100个文档的值应该是"1",接下来的100个文档的值应该是"2",依此类推.我怎么能这样做呢?
我有一个包含10,000个文档的MongoDB集合.我想 for each 包含字符串值的文档添加一个新字段,其中前100个文档的值应该是"1",接下来的100个文档的值应该是"2",依此类推.我怎么能这样做呢?
一种 Select 是使用$setWindowFields
:
db.collection.aggregate([
{$setWindowFields: {
sortBy: {date: 1},
output: {value: {
$sum: 1,
window: {documents: ["unbounded", "current"]}
}}
}},
{$set: {
value: {$toString: {
$add: [
{$floor: {$divide: [{$subtract: ["$value", 1]}, 100]}},
1
]
}}
}}
])
看看它在playground example号公路上是如何工作的