我正在尝试更新MongoDB中嵌套对象中的一个键值。目前,我的做法是覆盖整个嵌套对象,我如何改变一个键-值对?
try {
Files.updateOne(
{ _id: document._id },
{a:{b:{c:"new text", d: "not to change"}}},
function (err, result) {
if (err) {
res.send(err);
} else {
res.send(result);
}
}
);
} catch (err) {
res.status(400).send(err);
}
可以使用$set运算符,而不是将对象作为第二个参数传递:
{ $set: { "a.b.c": "new text" } }
试试看:
try {
Files.updateOne(
{ _id: document._id },
{ "a.b.c": "new text" },
function (err, result) {
if (err) {
res.send(err);
} else {
res.send(result);
}
}
);
} catch (err) {
res.status(400).send(err);
}