Mongo-如何在插入或更新给定文档之前检查现有字段

时间:2018-11-15 14:34:13

标签: javascript node.js mongodb

我在NodeJs中使用Mongodb,我想知道它是否存在在插入和更新给定文档之前检查现有字段的正确方法。

让我们假设我有一个名为“ gates”的集合,我想插入新文档或将现有文档更新到其中。所以,我尝试了

let exist = db.collection('gates').find({_id: {$eq: somevalue}}).toArray(
    (err, res) => {
        if(err) throw err;

        return res.length > 0;  
    }
);

这是我的问题,我的变量 exist 具有未定义的值,而不是布尔值。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您应该使用Promise,因为查询是异步评估的。

static countGates(somevalue) {
    return new Promise((resolve, reject) => {
        db.collection('gates').find({_id: {$eq: somevalue}}).toArray(
            (err, res) => {
                if(err) {
                    reject(err);
                }
                resolve(res.length > 0);  
            }
        );
    });
}