具有MongoDb的NodeJS:删除文档中的子字段

时间:2018-04-29 18:31:04

标签: javascript node.js mongodb

我有一个JSON对象存储在这样的集合中:

[
    {
        "username":"j",
        "pass":"t",
        "tracking":
        {
            "bettercallsaul":["1x1","1x2","1x3"]
        }
     }
]

我想删除“跟踪”字段中的“bettercallsaul”字段。

我尝试过这样一条线:

collection.updateOne({ "username" : req.session.username }, { $unset : { "tracking" : { showname : 1 } } });

它只设法删除了整个跟踪条目,而不仅仅是更好的条目。是否可以删除此子字段?

编辑:忘记提及我的预期输出应该如何显示:

[ { "username":"j", "pass":"t", "tracking": {} } ]

1 个答案:

答案 0 :(得分:1)

您可以使用$set并设置空对象:

db.collection.updateOne({ "username" : req.session.username }, { $set : { "tracking" : { } } });

或者,您可以使用点表示法仅删除一个子字段:

db.collection.updateOne({ "username" : req.session.username }, { $unset : { "tracking.bettercallsaul" : 1 } });