Mongodb 如何更新文档中的Meteor数组元素
我有一个Meteor Mongo文档,如下所示Mongodb 如何更新文档中的Meteor数组元素,mongodb,meteor,Mongodb,Meteor,我有一个Meteor Mongo文档,如下所示 { "_id" : "zFndWBZTvZPgSKXHP", "activityId" : "aRDABihAYFoAW7jbC", "activityTitle" : "Test Mongo Document", "users" : [ { "id" : "b1@gmail.com", "type" : "free" },
{
"_id" : "zFndWBZTvZPgSKXHP",
"activityId" : "aRDABihAYFoAW7jbC",
"activityTitle" : "Test Mongo Document",
"users" : [
{
"id" : "b1@gmail.com",
"type" : "free"
},
{
"id" : "JqKvymryNaCjjKrAR",
"type" : "free"
},
],
}
我想使用Meteor查询,使用自定义生成的id更新特定数组元素的电子邮件,如下所示
例如,我想更新文档
如果'users.id'='b1@gmail.com“
然后将其更新为users.id='SomeIDXXX'
所以更新后的文档应该如下所示
{
"_id" : "zFndWBZTvZPgSKXHP",
"activityId" : "aRDABihAYFoAW7jbC",
"activityTitle" : "Test Mongo Document",
"users" : [
{
"id" : "SomeIDXXX",
"type" : "free"
},
{
"id" : "JqKvymryNaCjjKrAR",
"type" : "free"
},
],
}
我试过下面的方法,但没用
Divisions.update(
{ activityId: activityId, "users.id": emailId },
{ $set: { "users": { id: _id } } }
);
有人能帮我查询一下流星吗?谢谢 您需要使用而不是$set
{$push:{:,…}
您需要使用而不是$set
{$push:{:,…}}
您的查询实际上几乎是正确的,只是有一小部分我们希望通过其索引标识要更新的元素
Divisions.update({
"activityId": "aRDABihAYFoAW7jbC",
"users.id": "b1@gmail.com"
}, {
$set: {"users.$.id": "b2@gmail.com"}
})
您的查询实际上几乎是正确的,只是有一小部分我们希望通过其索引标识要更新的元素
Divisions.update({
"activityId": "aRDABihAYFoAW7jbC",
"users.id": "b1@gmail.com"
}, {
$set: {"users.$.id": "b2@gmail.com"}
})
您可能需要arrayFilters选项
Divisions.update(
{ activityId: activityId },
{ $set: { "users.$[elem].id": "SomeIDXXX" } },
{ arrayFilters: [ { "elem.id": "b1@gmail.com" } ], multi: true }
);
您可能需要arrayFilters选项
Divisions.update(
{ activityId: activityId },
{ $set: { "users.$[elem].id": "SomeIDXXX" } },
{ arrayFilters: [ { "elem.id": "b1@gmail.com" } ], multi: true }
);
这将向数组中添加一个新对象。Syam询问如何更新数组中的现有对象。是的@BartS说的是对的。我想更新现有元素。这将向数组中添加一个新对象。Syam询问如何更新数组中的现有对象。是的@BartS说的是对的。我想更新现有的元素。