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();
在find
callback中调用,或者在完成之前closures连接。
在你的例子中, results
是一个游标,而不是一个文档数组,所以你需要调用toArray
来遍历游标并获取文档数组。 但是,你也需要把你的find
调用save
callback。 否则,在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(); }); });