我不知道如何修改db.collection.find().limit(1).sort({$natural:-1})
查询在控制台中工作,以便我可以在我的应用程序中使用它。目前我得到了 TypeError: Object #<Promise> has no method 'limit'
错误,所以我猜我必须添加带有结果的回调并在那里处理它。
我在回调中发现的是这种语法,我看不出如何放置当前的 limit(1) 和 sort() 后缀 - 我认为它们不应该在回调之后:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
我是在nodejs中做的,我的项目中也有monk可用。
用例:
获取最新的元素,将其值与我尝试插入的元素进行比较。如果数据库中的最新元素比我尝试插入的元素旧,则插入它。
最佳答案
它应该有效:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
var collection = db.collection('MyCollection');
var cursor = collection.find().limit(1).sort({ $natural : -1 });
cursor.toArray(function(err, results) {
if (err) throw err;
console.log('%j', results);
db.close();
});
});
但是,我猜您可能没有使用 mongodb
模块,但可能使用 Mongoose?
Monk 的工作方式与 mongodb
不同(它本身的建模更像 MongoDB shell)。
使用 Monk 执行类似的操作:
var db = require('monk')('localhost/test');
db.get('MyCollection').find({}, { sort : { $natural : -1 }, limit : 1 }).then(function(results) {
console.log('%j', results);
db.close();
}, function(err) {
console.error(err);
db.close();
});
关于javascript - 从 mongodb 获取最新记录并通过回调处理它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30707009/