我尝试找到电影,如果它还不存在,请将其添加到数据库中。
let film = Films.findOne({ "id" :id }, function(err, doc) {
if (err) throw err;
else console.log("Film is "+doc);
});
if (!film){
film = {"id" : id};
Films.insertOne(film);
}
console.log
提供null
,因此没有错误,但无法在数据库中创建新电影。你能说出我做错了吗
答案 0 :(得分:0)
尝试以下代码。问题与异步有关。在调用findOne
语句之前,您需要if
返回。
Films.findOne({ "id" :id }, function(err, doc) {
if (err){
// error
throw err;
} else if (doc) {
// film exists
console.log("Film is "+doc);
} else {
// film doesn't exist
var film = new Films({"id" : id});
film.save();
}
});
该代码会在id
变量中找到id
=的一个项目,并在完成时调用提供的函数,传入任何错误及其找到的文档(如果没有,则传递null
文件被发现)。
然后将打印文档(如果存在),否则它将创建一个新的电影对象并将其保存到数据库中。