首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB并不是在更新所有记录,即使多个设置为true。

MongoDB并不是在更新所有记录,即使多个设置为true。
EN

Stack Overflow用户
提问于 2014-06-02 21:17:48
回答 1查看 212关注 0票数 1

我有一个集合代表维基百科网页,标题,类别和链接,如下所示。

代码语言:javascript
复制
{
    "_id" : NumberLong(1975),
    "Categories" : [ 
        "pacific ocean"
    ],
    "Links" : [ 
        "volcano", 
        "trench", 
        "water", 
        ...
        "kilometer", 
        "plate tectonics", 
        "el niño"
    ],
    "Title" : "pacific ocean"
}

我需要更新链接数组中的一些值,为此,我将执行以下操作。

代码语言:javascript
复制
db.WikipediaArticles.update({Links:"kilometer"}, {$set: {"Links.$": "kilometre"}}, {upsert:false, multi:true})

然而,这并不是在更新所有文档(正如预期的那样),最后我不得不运行3-4次才能更新所有记录。我能保证所有的文件都被更新了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 22:07:17

$标识查询中第一个匹配元素的索引,因此每次运行update时,每个文档最多只修改一个Links元素。

因为Links可以包含"kilometer"的多个元素,所以您需要继续运行update命令,直到它报告没有任何文档受到影响。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24003461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档