我有一个 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/