是否可以使用find和发出的所有参数来选择最后30条或插入到mongoDB中的任何数量的记录。
db.tweets.find({}, function(err, docs){
response.end(JSON.stringify(docs));
});
我不知道在花括号里需要做些什么。
发布于 2014-07-11 04:26:22
蒙古族的find()语法(对mongoskin相同)是:
find(query[, options], callback)
或
find(query[, options]).toArray(callback)
第一个参数是搜索标准,所以它不能在那里,但限制可以放在可选的第二个参数中。就像这样:
db.tweets.find({}, {limit: 30}).toArray(function(err, docs){
response.end(JSON.stringify(docs));
});
更新:您也可以指定“排序”来获取最后的30。如下所示:{极限: 30,排序:“时间戳”、"desc"} ( "desc“或-1,不记得语法),其中”时间戳“是要排序的字段。
发布于 2014-07-11 04:30:27
如果您使用ObjectId
作为文档的_id
字段,那么按_id
降序排序可能会为您提供正确的文档顺序,从最近插入的文档开始。这是因为MongoDB的ObjectId
包含一个时间戳。请注意,如果您有多个MongoDB实例正在运行,这将取决于进程的时钟是否很好地同步,我相信最大的精度是1秒。在任何情况下,您都可以运行如下内容:
db.tweets.find({}).sort({ "_id" : -1 }).limit(30, function(err, docs) {
// Do something here
});
但是,如果您没有使用ObjectId
,那么您的文档将需要在创建时有一个带有时间戳的字段,并在上面的代码中用该字段的名称替换"_id"
。
希望这能帮上忙!
https://stackoverflow.com/questions/24696837
复制相似问题