作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下代码:
db.users.save({
username: "admin",
array: [{
foo1: "foo1",
foo2: "foo2"
}, {
bar1: "bar1",
bar2: "bar2"
}, {
cell1: "cell1",
cell2: "cell2"
}
]
});
现在我想更新数组。我的意思是将一些东西插入数组:
db.users.update({
username: admin
}, {
$set: {
array: {
push1: "push1",
push2: "push2"
}
},
function (err, updated) {
更新功能不推送。那么我怎样才能推送到数组,所以结果将是:
[
{ foo1:"foo1", foo2:"foo2" },
{ bar1:"bar1", bar2:"bar2" },
{ cell1:"cell1", cell2:"cell2" },
{ push1:"push1", push2:"push2" }
]
最佳答案
$set
运算符当然会更改 array
属性的全部数据。
如果您只想推送,请使用 $push
(一次推送一个项目)或 $pushAll
(推送一个数组的所有项目)。
如果您想推送而不重复某个项目,请使用 $addToSet
。
注意:如果您使用的是 MongoDB 2.4(最新版本),请将 $push
与新的 $each
修饰符一起使用。这不赞成使用 $pushAll
(这也适用于 $addToSet
)
文档:
关于node.js - Mongojs - 如何推送到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761064/
我是一名优秀的程序员,十分优秀!