我正在尝试使用websockets将node.js / MongoDB实例中的数据“流”传输到客户端。一切运作良好。
但是如何识别结果中的最后一个文档?我正在使用node-mongodb-native从node.js连接到MongoDB。
简化示例:
collection.find({}, {}, function(err, cursor) {
if (err) sys.puts(err.message);
cursor.each(function(err, doc) {
client.send(doc);
});
});
答案 0 :(得分:29)
由于mongodb objectId contatins创建日期,您可以按id排序,降序然后使用limit(1):
db.collection.find().sort( { _id : -1 } ).limit(1);
注意:我根本不熟悉node.js,上面的命令是mongo shell命令,我想你可以轻松地将它重写为node.js。
答案 1 :(得分:1)
说我有公司收藏。下面的片段给出了我在该集合中的最后一个文档。
db.companies.find({},{ “_编码”:1})。跳过(db.companies.find()计数() - 1);
代码不能依赖于_id,因为它可能不是特定模式,如果它是用户定义的值。
答案 2 :(得分:0)
如果要使用游标,请使用排序和限制:
var last = null;
var findCursor = collection.find({}).cursor();
findCursor.on("data", function(data) {
last = data;
...
});
findCursor.on("end", function(data) {
// last result in last
....
});