Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Robo3T中用数组更新文档中的字符串?_Javascript_Mongodb_Robo3t - Fatal编程技术网

Javascript 如何在Robo3T中用数组更新文档中的字符串?

Javascript 如何在Robo3T中用数组更新文档中的字符串?,javascript,mongodb,robo3t,Javascript,Mongodb,Robo3t,我试图更改Robo3T上文档中数组中的元素对象 结构如下所示: { "_id" : ObjectId("1234"), "source" : "BW", "sourceTableName" : "lwtrmls", "tableName" : "tier", "type" :

我试图更改Robo3T上文档中数组中的元素对象

结构如下所示:

  {
    "_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 }} )