gpt4 book ai didi

javascript - 对记录进行排序,然后在 MongoDB 中使用 updateMany 进行限制

转载 作者:行者123 更新时间:2023-12-01 01:09:17 26 4
gpt4 key购买 nike

我正在尝试更新 MongoDB 数据库中的所有记录。我想根据日期(updatedAt)按升序对记录进行排序。然后根据其当前状态(currentStatus)更新有限数量的记录。

这些字段是这样的: enter image description here

我尝试过,但没有成功:

var count = 20;
var sortUpdatedAt = this.collection.find({}).sort({"updatedAt":1});
try {
this.collection.updateMany(sortUpdatedAt,
{"currentStatus": {$in:["ACTIVE","IDLE"]} },
{ $set: { "currentStatus" : "SHUTDOWN" } }
).limit(count);
} catch (e) {
logger.error(e);
}

创建了变量 sortUpdatedAt 因为我读到 updateMany 不支持 .sort()

最佳答案

不幸的是,findupdateMany 不是适合这项工作的工具。相反,您应该查看 aggregation pipeline 。通过$sort的组合, $filter ,和$limit聚合运算符,您应该能够执行问题中描述的确切操作。

PS:如果这打算成为您集合的常见操作,请不要忘记向您正在排序的字段添加索引(如果您还没有),以提高性能。

关于javascript - 对记录进行排序,然后在 MongoDB 中使用 updateMany 进行限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com