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

标签 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 有一个未定义的值而不是 bool 值。我该如何解决?

最佳答案

您应该使用 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);  
            }
        );
    });
}

关于javascript - Mongo - 如何在插入或更新给定文档之前检查现有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53321756/

相关文章:

javascript - 在 Jest (Node.js) 中测试单例的静态方法

javascript - $ 是在浏览器中定义的还是 JavaScript 本身定义的?

javascript - Google OAuth - 使用 "anonymous"作为 key 和 secret 是否不安全?

javascript - 如何禁用 html 链接以调用 JS 函数?

javascript - 如何处理 toastr 中按钮的点击事件?

node.js - npm 安装 grpc 失败

node.js - 如何使用 llen 命令结果插入 rpush 的数据?

Javascript JQuery - 使用带参数的事件创建动态按钮

javascript - 根据 promise 结果运行逻辑

mongodb - “Robo 3T” 无法打开,因为无法验证开发者