MongoDb $在标识数组中的对象后设置字段值

时间:2015-04-16 11:39:22

标签: mongodb mongodb-query

在Mongo $set操作中,如何通过将字段array与名为'idGen'的变量匹配来识别'id'中的特定对象。因此,通过将'idGen'与此对象中的变量'id'相匹配,如何将value变量设置为此对象中名为fieldStr的字段?

在服务器上,我通过匹配userId来找到该集合。

var id
var fieldStr
var userId = this.userId

我试过了:

Collection.update(
{'createdBy': userId, 'array.$.idGen': id},
{$set: 
      {'array.$.fieldStr': value}
})

如您所见,'idGen'字段是数组中每个对象的唯一字段。

1 个答案:

答案 0 :(得分:0)

Collection.update({'createdBy': userId, 'array': {$elemMatch: {idGen': id}}}, {$set: {'array.$.fieldStr': value}})

elemMatch匹配数组中的对象,其中'id'变量idGen与'id'变量匹配。 $是我的占位符,以便定位'fieldStr'字段,然后我可以将值设置为。