Javascript 如何在Robo3T中用数组更新文档中的字符串?
我试图更改Robo3T上文档中数组中的元素对象 结构如下所示:Javascript 如何在Robo3T中用数组更新文档中的字符串?,javascript,mongodb,robo3t,Javascript,Mongodb,Robo3t,我试图更改Robo3T上文档中数组中的元素对象 结构如下所示: { "_id" : ObjectId("1234"), "source" : "BW", "sourceTableName" : "lwtrmls", "tableName" : "tier", "type" :
{
"_id" : ObjectId("1234"),
"source" : "BW",
"sourceTableName" : "lwtrmls",
"tableName" : "tier",
"type" : "main",
"primaryKeys" : [
{
"sourceField" : "tier_id", // <~~~~ This is what I am trying to update!
"reportingField" : "bw_id",
"type" : "integer"
}
]
}
{
“_id”:ObjectId(“1234”),
“来源”:“BW”,
“sourceTableName”:“lwtrmls”,
“表名”:“层”,
“类型”:“主要”,
“主密钥”:[
{
“sourceField”:“tier_id”,//基本上您需要使用
在您的情况下,您需要执行当前查询:
db.my_collection.update( {_id : "1234", "primaryKeys.sourceField":"tier_id"}, {$set : {"primaryKeys.$.sourceField" : "trmls_id"}} )
更新:
若您不仅要更新当前过滤器数组中的第一个元素,而且要更新所有元素,可以使用
这回答了你的问题吗?如果主键包含多个对象?条件应该是什么?更新所有不匹配的字段,这不是更新的方式,它需要ArrayFilter,这是重复的问题。答案已经在上面的注释链接中。谢谢,是的,我使用了类似的方法!它成功了!
db.my_collection.update( {_id : "1234", "primaryKeys.sourceField":"tier_id"}, {$set : {"primaryKeys.$[].sourceField" : "trmls_id"}, { multi: true }} )