gpt4 book ai didi

java - MongoDB : How to make findAndModify returns the Last Updated Record

转载 作者:行者123 更新时间:2023-12-02 00:05:45 25 4
gpt4 key购买 nike

我是 Mongo DB 的新手,遇到了麻烦,因为它在不同的环境(开发、质量检查和生产)中表现不同

我正在使用 findAndModify 更新 MongoDB 中的记录。

有一个每天运行的作业,它将数据更新/插入到 Mongo DB 中,我正在使用 findAndModify 来更新记录。

但是我观察到,尽管这三个环境具有相同的数据,但 findAndModify 返回的第一条记录在开发、QA 和生产环境中是不同的?

根据 Mongo DB 文档,它指出 findAndModify 将修改第一个文档

目前这是我的代码:

BasicDBObject update = new BasicDBObject();
update.append("$set", new BasicDBObject(dataformed));
coll.findAndModify(query, update);

请让我知道如何确保 findAndModify 返回最后更新的记录,而不是依赖于不可预测的行为?

编辑部分

我正在尝试对我的代码使用排序,但它给了我编译错误

coll.findAndModify(query, sort: { rating: 1 }, update);

我有一个名为lastUpdated 的字段,它是使用System.currentTimeMilis 创建的

那么我可以使用这个lastUpdated(如图所示)来获取上次更新记录

coll.findAndModify(  query, 
new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1)),
update);

最佳答案

看来您正在使用 Java,因此您必须将 sort 参数构造为 DBObject,就像其他参数一样:

coll.findAndModify(
query,
new BasicDBObject("sort", new BasicDBObject("rating", 1)),
update);

关于java - MongoDB : How to make findAndModify returns the Last Updated Record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920730/

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