我知道这将是一些我不知道的小事,但我会很感激帮助。
这是我的测试脚本(node.js)
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost:27017/myTestDB',
function (err, db) {
if (err)
debugger;
else {
db.collection('test', function (err, collection) {
collection.save({ name: "danny" }, function () { debugger;});
collection.find(function (err, results) {
if(results.items.length == 0){
///======> always = 0 !!!! WHY?!!!!
debugger;
}
});
});
}
db.close();
});
随时用“duh!”开始你的答案。
答案 0 :(得分:2)
更新:您还需要在db.close();
回调中移动find
来电,或者在完成连接之前关闭连接。
在您的示例中,results
是游标,而不是文档数组,因此您需要在其上调用toArray
来迭代游标并获取文档数组。但您还需要将find
来电置于save
回调中。否则find
正在save
完成之前执行。
所以这样的话:
collection.save({ name: "danny" }, function () {
collection.find().toArray(function (err, results) {
// results contains the array of docs
// Now you can close the connection.
db.close();
});
});