我有一个包含 100 个文档的集合,其中 4 个文档的所有字段的值完全相同,但时间戳值不同。我想更改这 4 个文档中的最新文档。我怎样才能做到这一点?
在具有相同值的字段上查询集合,按时间戳排序并返回最新的。
const myDoc = db.collection.findOne({ fieldA: 'valA', fieldB: 'valB', ... }).sort({ timestamp: -1 });
db.collection.update(myDoc, { fieldA: 'newValA', ... });
更新:如何在 java 中查询数据库
// setup your db connection
MongoClient client = new MongoClient(...);
DB db = client.getDB("yourDbName");
DBCollection collection = db.getCollection("collectionName");
// set up the query for the fields you want to use
BasicDBObject query = new BasicDBObject();
query.put("fieldA", "valA");
query.put("fieldB", "valB");
// etc
// create the object for sorting by timestamp
BasicDBObject sort = new BasicDBObject("timestamp", -1);
// query the database
Document mostRecent = (Document)collection.find(query).sort(sort).first();