为什么我的updateOne mongodb不返回任何内容?

时间:2018-12-04 09:04:57

标签: node.js mongodb

我有此代码:

    MongoClient.connect(config.mongoURL, {useNewUrlParser: true}, (err, db)=> {
    if (err) {
        console.log("Err", err)
        cb(-1)
    }
    else {
        var con = db.db('englishAcademy')
        try {
            con.collection("sound").updateOne({"_id": new ObjectID(sndId)}, {
                $set: {
                    "snd_title": info.snd_title,
                    "snd_type": info.snd_type,
                    "snd_url": info.snd_url,
                    "snd_lsnId": info.snd_lsnId,
                    "snd_lvlId": info.snd_lvlId,
                    "snd_order": info.snd_order
                }
            }), (err, doc) => {
                console.log("result")
                if (err) {
                    console.log(err)
                    cb(-1)
                }
                else {
                    console.log(doc)
                    let result = 'row affected'
                    cb(doc)
                }
            }
        }
        catch (e) {
            console.log(e)
        }


    }
})

任何人都可以告诉我我的代码有什么问题吗?updateOne函数不返回任何内容。但是我的mongo数据库得到了更新。

编辑: 我到目前为止已经做过了,但是没有成功。有人可以帮忙吗?我用断言没有成功。我用new:true,不成功。我用finde和update,没有成功

            let infor =  {
                "adm_name": info.adm_name,
                "adm_username": info.adm_username,
                "adm_password": info.adm_password
            }
            con.collection("admins").findOneAndUpdate({"_id": new ObjectID(admId)}, {
                $set: infor
            },{new:true} ), (err , result) => {
                console.log("result")
                if (err) {
                    console.log(err)
                    assert.equal(err, null);
                    cb(-1)
                }
                else {
                    let result = 'row affected'
                    assert.equal(1, result.result.n);

               }

2 个答案:

答案 0 :(得分:0)

尝试这种方式..

collection.findOneAndUpdate(
   {"_id": new ObjectID(sndId)},
     $set: yourData },
     { new: true },
     function (err, documents) {
       res.send({ error: err, result: documents });        
     }
);   

现在您可以在cb中返回newData

答案 1 :(得分:0)

  

设置新的:true

MongoClient.connect(config.mongoURL, {useNewUrlParser: true}, (err, db)=> {
    if (err) {
        console.log("Err", err)
        cb(-1)
    }
    else {
        var con = db.db('englishAcademy')
        try {
            con.collection("sound").updateOne({"_id": new ObjectID(sndId)}, {
                $set: {
                    "snd_title": info.snd_title,
                    "snd_type": info.snd_type,
                    "snd_url": info.snd_url,
                    "snd_lsnId": info.snd_lsnId,
                    "snd_lvlId": info.snd_lvlId,
                    "snd_order": info.snd_order
                },{new: true}
            }), (err, doc) => {
                console.log("result")
                if (err) {
                    console.log(err)
                    cb(-1)
                }
                else {
                    console.log(doc)
                    let result = 'row affected'
                    cb(doc)
                }
            }
        }
        catch (e) {
            console.log(e)
        }
    }
})