使用标记MongoDB Java获取最后插入的文档

使用标记MongoDB Java获取最后插入的文档,java,mongodb,mongodb-query,Java,Mongodb,Mongodb Query,我使用2.6Java驱动程序在Java中工作 我正在使用“I”标签来标识站点 要获取最后一个插入的文档“i”=“99159”,最好的查询方式是什么 请提供一些示例代码 mongo中的示例文档: { "_id": ObjectId("560bc0eee4b01a37814ee444"), "dataDate": "2015-09-30T11:00:00Z", "i": "99159", "lat": "50.61359", "lon": "-1.95875",

我使用2.6Java驱动程序在Java中工作

我正在使用“I”标签来标识站点

要获取最后一个插入的文档“i”=“99159”,最好的查询方式是什么

请提供一些示例代码

mongo中的示例文档:

 {
   "_id": ObjectId("560bc0eee4b01a37814ee444"),
   "dataDate": "2015-09-30T11:00:00Z",
   "i": "99159",
   "lat": "50.61359",
   "lon": "-1.95875",
   "name": "SWANAGE",
   "country": "ENGLAND",
   "continent": "EUROPE",
   "elevation": "10.0",
   "Period": {
     "type": "Day",
     "value": "2015-09-30Z",
     "Rep": {
       "H": "75.9",
       "T": "14.7",
       "Dp": "10.5",
       "MinSinceMidnight": "600"
    }
  }
}   

由于您有
\u id
作为
ObjectId
,因此您可以在
\u id
上对数据进行排序,以获得最后插入的记录

示例代码:

 MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
 MongoClient mongo = new MongoClient("localhost", 27017);
 DB mongodb = (DB) mongo.getDB("testDB");
 DBCollection collection = mongodb.getCollection("collection");

 BasicDBObject findObject = new BasicDBObject().append("i","99159");
 BasicDBObject sortObject = new BasicDBObject().append("_id", -1);

 DBCursor cur = collection.find(findObject).sort(sortObject).limit(1);
 DBObject obj = cur.one();

由于您有
\u id
作为
ObjectId
,因此您可以在
\u id
上对数据进行排序,以获得最后插入的记录

示例代码:

 MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
 MongoClient mongo = new MongoClient("localhost", 27017);
 DB mongodb = (DB) mongo.getDB("testDB");
 DBCollection collection = mongodb.getCollection("collection");

 BasicDBObject findObject = new BasicDBObject().append("i","99159");
 BasicDBObject sortObject = new BasicDBObject().append("_id", -1);

 DBCursor cur = collection.find(findObject).sort(sortObject).limit(1);
 DBObject obj = cur.one();
为什么limit(1)返回最后一个元素?limit(1)为什么返回最后一个元素?