当我collection.find()
在MongoDB / Node / Express中运行时,我想在完成时得到一个回调。正确的语法是什么?
function (id,callback) {
var o_id = new BSON.ObjectID(id);
db.open(function(err,db){
db.collection('users',function(err,collection){
collection.find({'_id':o_id},function(err,results){ //What's the correct callback synatax here?
db.close();
callback(results);
}) //find
}) //collection
}); //open
}
这是正确的回调语法,但是find
提供给回调的是一个Cursor
,而不是文档数组。因此,如果您希望回调将结果作为文档数组提供,请调用toArray
游标以将其返回:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
请注意,函数的回调仍需要提供一个err
参数,以便调用者知道查询是否有效。
2.x驱动程序更新
find
现在返回游标而不是通过回调提供游标,因此典型用法可以简化为:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
或者在这种情况下,期望使用单个文档,则使用起来更简单findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});
问题内容: 我正在寻找获得Android中表格可用列名的代码吗? 我环顾四周,没有找到任何东西。 问题答案: 这是一种更简单的方法:
考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?
问题内容: 我正在尝试使用Picasso库来将URL加载到imageView,但是我无法正确使用Picasso库。 问题答案: 您在这里有一些选择: 作为参数传递给FeedAdapter并将其保留为类字段 在需要时使用依赖项注入进行注入。我强烈建议您阅读有关内容。有一个很棒的工具-Dagger by Square 从任何对象获取它。在您的情况下,这可能适合您: 作为一个。
我试图使用picasso库将url加载到imageView,但无法获得来正确使用picasso库。
问题内容: 我必须为仍在运行JDK 1.5的旧版应用程序编写一些代码。不幸的是,看起来OS X实际上没有安装1.5 JDK。它只是链接到1.6: 从http://developer.apple.com/java/faq/听起来,Java是OS更新的一部分…我在Mac OS X v10.6.3 (Snow Leopard)上。有没有办法在此OS版本上安装实际的1.5 JDK? 还是我需要尝试找到旧版
我试着用正常的方式做吐司。但我得到了错误,我尝试了很多倍数源,但失败了。