使用objectID无法更新mongodb记录

时间:2017-01-01 11:14:21

标签: python mongodb flask

我在Flask应用程序中有一条更新指定记录属性的路径。我目前的代码不起作用,所以我一定做错了,但我正在看的所有地方,我的代码看起来很相似。

拿这个对象:

{"item": "Finish homework", "_id": {"$oid": "549548f93482984f399f9"}, "complete": false}

我想将“完成”更新为True。以下是我目前在路线中的代码:

todos.update({ "_id": todo_id }, { "$set": { "complete": "True" } })

我做错了什么?

由于

2 个答案:

答案 0 :(得分:0)

必须将todo_id转换为字符串并使用bson ObjectID

todos.update({ "_id": ObjectId(str(todo_id)) }, { "$set": { "complete": True } })

答案 1 :(得分:0)

var ObjectID = require('mongodb').ObjectID;

 MongoClient.connect(url, function(err, db) {
        if (err) throw err;
        var myObj =   { $set: {name:  req.body.name , branch:  req.body.branch}};
        dbo.collection("my_std_table").update({"_id":  ObjectID(req.params.id)}, myObj, function(err, result) {
            if (err) throw err;
            console.log("1 document updated");
            db.close();
            res.send(result);
        });
    });