![](/img/trans.png)
[英]FindOne does not correctly compare string Express and MongoDB
[英]Mongodb findone method does not work
function updateMongo(url, cached) {
console.log("Update mongo called");
MongoClient.connect('mongodb://127.0.0.1:27017/dbnerds', function(err, db) {
if(err) {
return console.log(err);
}
var cache = db.collection('cache');
cache.insert({url: url, image: null}, {safe: false}, null);
cache.findOne({ url: url }, function(err, result) {
console.log(result);
});
db.close();
});
};
從我的代碼中可以看出,我將url插入到mongodb中,但是當我執行findOne
操作時,它似乎無效。 控制台沒有打印出任何結果。 這有什么問題?
問題是因為無法保證在執行.findOne()調用時對.insert()的調用已完成。
請嘗試使用以下方法:
function updateMongo(url, cached) {
console.log("Update mongo called");
MongoClient.connect('mongodb://127.0.0.1:27017/dbnerds', function(err, db) {
if(err) {
return console.log(err);
}
var cache = db.collection('cache');
cache.insert({url: url, image: null}, {safe: false}, function(err, n) {
// Make the call to findOne until insert has finished
cache.findOne({ url: url }, function(err, result) {
console.log(result);
// close the DB after you are done
db.close();
});
});
});
};
注意我是如何將對findOne()的調用移動到插入完成后執行的回調函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.