我是 Mongo DB 的新手,遇到了麻烦,因为它在不同的环境(开发、QA 和生产)中表现不同
我正在使用 findAndModify 更新我的 MongoDB 中的记录。
有一个每天运行的作业,它将数据更新/插入到 Mongo DB,我正在使用 findAndModify 来更新记录。
但是我观察到的是 findAndModify 返回的第一条记录在 Dev 、 QA 和 Production 环境中是不同的,尽管这三个环境具有相同的数据?
根据 Mongo DB 文档,它声明 findAndModify 将修改第一个文档
目前这是我的代码:
BasicDBObject update = new BasicDBObject();
update.append("$set", new BasicDBObject(dataformed));
coll.findAndModify(query, update);
请让我知道如何确保 findAndModify 返回最后更新的记录,而不是依赖于不可预测的行为?
编辑部分
我正在尝试对我的代码使用排序,但它给了我编译错误
coll.findAndModify(查询,排序:{评级:1},更新);
我有一个名为 lastUpdated 的字段,它是使用 System.currentTimeMilis 创建的
那么我可以像这样使用这个 lastUpdated 来获取最后更新的记录吗
coll.findAndModify( query,
new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1)),
update);