我是Mongo DB的新手,遇到了麻烦,因为它在不同的环境(开发,质量检查和生产)中的行为有所不同
我正在使用findAndModify更新MongoDB中的记录。
有一个每天运行的作业,它会将数据更新/插入到Mongo DB中,并且我正在使用findAndModify来更新记录。
但是我观察到的是,尽管三个环境具有相同的Data,但findAndModify返回的第一条记录在Dev,QA和Production环境中有所不同。
根据Mongo DB文档,它指出findAndModify将修改第一个文档
目前这是我的代码:
BasicDBObject update = new BasicDBObject();
update.append("$set", new BasicDBObject(dataformed));
coll.findAndModify(query, update);
请让我知道如何确保findAndModify返回上次更新记录,而不是取决于不可预测的行为?
编辑部分
我正在尝试对我的代码使用sort,但是它给了我编译错误
coll.findAndModify(query,sort:{Rating:1},update);
我有一个名为lastUpdated的字段,该字段是使用System.currentTimeMilis创建的
所以我可以按照这种方式使用lastUpdated来获取Last Updated Record
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:如何使findAndModify返回最后更新的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13920730/