MongoDB查找返回零结果

我知道这将是我想念的小东西,但将不胜感激的帮助。

这是我的testing脚本(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(); }); 

随时用“呃!”开始你的回答

更新 :你也需要移动你的db.close();findcallback中调用,或者在完成之前closures连接。

在你的例子中, results是一个游标,而不是一个文档数组,所以你需要调用toArray来遍历游标并获取文档数组。 但是,你也需要把你的find调用savecallback。 否则,在save完成之前, find正在执行。

所以像这样的东西:

 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(); }); });