nodejs mongodb驱动程序update
函数的文档说第二个参数是" update document
",但不能描述其中一个那些是。
他们展示了如何使用它在文档中设置根节点值的示例:
var r = yield col.updateOne({a:1}, {$set: {b: 1}});
这会将item.b
的{{1}}设置为1。
...但是我无法从这里推断出如何将一个元素添加到一个叶子的数组中(不在上面的item.a===1
项目的根部)
这可能是
b
或
col.updateOne({a:1}, {$push: {sub_node: {the_list: 1}}});
......实际的方式是什么?
和(旁边的问题)这个记录在哪里?我们怎么知道怎么做?
答案 0 :(得分:1)
您可以使用两个运算符 1)$ push
col.updateOne({a:1}, {$push: {sub_node: {the_list: 1}}})
这会将the_list变量推送到sub_node对象数组对象
中2)$ addToSet:
col.updateOne({a:1}, {$addToSet: {sub_node: {the_list: 1}}})
这也和$ push一样,但它会避免在sub_node数组中重复输入 你可以看到mongodb文档
答案 1 :(得分:0)
似乎没有关于nodejs mongodb驱动程序如何在nodejd mongodb驱动程序引用中实现update
文档的信息。
看起来本机(mongo)实现也有效。记录在案here。
使用"点符号"
访问嵌套文档元素theDb.collection('projects').updateOne({id: projectId}, {$push: {"contract.variations": variationId}})
对于react
开发人员而言,这是不直观的,其中immutability-helper
的{{1}}看起来看似相似,但使用嵌套对象语法。遗憾!