javascript - NodeJS 带 MongoDb : Removing a sub-field in a document

标签 javascript node.js mongodb

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

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

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

我尝试过这样运行一行:

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

而且它只删除了整个跟踪条目,而不仅仅是 bettercallsaul 条目。是否可以删除该子字段?

编辑:忘记提及我的预期输出应该是什么样子:

[ { “用户名”:“j”, “通过”:“t”, “追踪”: {} } ]

最佳答案

您可以使用 $set 并设置空对象来做到这一点:

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

或者,您可以使用点符号仅删除一个子字段:

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

关于javascript - NodeJS 带 MongoDb : Removing a sub-field in a document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50089931/

相关文章:

node.js - 如何比较数组mongodb查询

node.js - Jade 模板 HTML 括号撇号和多行问题

node.js - Redis hash值不能按时间顺序显示

node.js - 如何从结果中删除 mongo 特定字段(NodeJS、Mongoose)

ruby-on-rails - 如何从sqlite将数据库更改为mongodb

javascript - 用于检测文件下载的 Chrome API

Javascript更改h1文本而不是内部其他html

javascript - Node.js 最高对象值

javascript - 干燥 htmlCollection 到 Array 调用

r - 使用哪个包将 R 与 MongoDB 连接起来?