我使用的是mongodb native和Node.js 6.5.0。
我在mongodb中有用户对象,结构如下:
{
"_id" : ObjectId("57d7d294d96a73d128c46db9"),
"id" : "105862592064",
"labels" : [
]
}
我有一个循环(对于找到的每个用户)从API获取数据,然后将其推送到数组类型的对象属性。用户ID user.id
和要推送的数据的位置为resp.labels
。
这是我的代码:
db.collection('users').update(
{"id":user.id},
{"$push":{"users.labels":resp.labels}}
)
它不会返回任何错误,也不会更新对象。我做错了什么?
答案 0 :(得分:2)
<tr ng-repeat="student in students">
<td contenteditable="true">{{student.Id}}</td>
<td contenteditable="true">{{student.FullName}}</td>
<td contenteditable="true">{{student.Gender}}</td>
<td contenteditable="true">{{student.Grade}}</td>
</tr>
答案 1 :(得分:1)
尝试$( document).ajaxSend(function() {
ShowLoading();
});
$set
答案 2 :(得分:1)
$push
用于将单个元素推送到数组。将$push
与$each
一起使用以推送多个元素。此外,对象标签周围的引号不一定是必要的:
db.collection('users').update(
{ id:user.id },
{ $push: { labels: { $each: resp.labels } } }
)
答案 3 :(得分:0)
尝试加入{upsert:true}
:
db.collection('users').update(
{"id":user.id},
{"$push":{"users.labels":resp.labels}},
{"upsert": true}
);
如果Upsert尚未存在,则会插入新值。