根据Java的最新时间戳查询Mongo Document

时间:2014-01-09 06:48:36

标签: java json mongodb

我的Mongo系列Nee2500AS1有2行:

  

db.Nee2500AS1.find()

{ "_id" : ObjectId("52ce3ff4c56df46f9defca62"), "asset" : "Nee2500AS1", "SaltRejection" : "82%", "SaltPassage" : "18%", "Recovery" : "56.33%"}
{ "_id" : ObjectId("52ce4013c56df46f9defca63"), "asset" : "Nee2500AS1", "SaltRejection" : "182%", "SaltPassage" : "18%", "Recovery" : "56.33%"}

是否可以查询db.Nee2500AS1.find("Latest Timestamp")

_id包含时间戳吗?

我的java代码是:

Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("TESTDoc");
DBObject allQuery = new BasicDBObject();
DBCollection collection = db.getCollection("Nee2500AS1");
DBCursor cursor = collection.find(allQuery);

如何修改我的java代码以获取最新添加的行?

2 个答案:

答案 0 :(得分:0)

使用sortlimit的组合,请参阅DBCursor javadoc

如果您使用_id之外的其他内容进行排序,则可能需要为性能目的添加索引。

collection.find(allQuery).sort(new BasicDBObject("_id", 1)).limit(1);

答案 1 :(得分:0)

很简单..

DBCollection collection = db.getCollection("Nee2500AS1");
DBCursor cursor = collection.find(allQuery).sort( new BasicDBObject( "_id" , -1 ));
DBObject resultElement = null;
resultElement = cursor.next();

这里.sort(new BasicDBObject(“_ id”,0)返回所需的结果。