当前位置: 首页 > 知识库问答 >
问题:

MongoDB-更新嵌套文档

路金鑫
2023-03-14

我想在具有指定 URL 的相应文档中将嵌套的“已爬行”更新为 True。

我对mongodb相当陌生,我似乎无法弄清楚这一点,非常感谢任何帮助。

{
    "_id": {
        "$oid": "56e9978732beb44a2f2ac6ae"
    },
    "domain": "techweekeurope.co.uk",
    "good": [
        {
            "crawled": false,
            "added": {
                "$date": "2016-03-16T17:27:17.461Z"
            },
            "link": "/workspace/microsoft-dell-windows-surface-106648"
        },
        {
            "crawled": false,
            "added": {
                "$date": "2016-03-16T17:27:17.461Z"
            },
            "link": "/workspace/new-street-view-images-raise-privacy-concerns-5850"
        },
        {
            "crawled": false,
            "added": {
                "$date": "2016-03-16T17:27:17.461Z"
            },
            "link": "/workspace/quiz-of-the-week-dell-reborn-106744"
        }
    ],
    "bad": [],
    "link_found": false,
    "subdomain": "http://www.",
    "crawled": true
}
self.collection.update({'good.link':'/workspace/microsoft-dell-windows-surface-106648'}, {'crawled': True})

共有2个答案

郎祯
2023-03-14

您应该使用$elemMatch来查询文档数组中的特定条目。匹配后,您可以使用$set来更改值

这个例子是针对< code>find的,但是它也适用于update。

db.survey.find(
   { results: { $elemMatch: { product: "xyz", score: { $gte: 8 } } } }
)
劳和雅
2023-03-14

在第一个带有链接的文档搜索中,在第二个文档集中更新值。您需要指定good.$。已爬网以指定要更新的数组元素

.update(
        {'good.link':'/workspace/microsoft-dell-windows-surface-106648'}, 
        {
          $set : {'good.$.crawled': true} 
        }
)
 类似资料:
  • 我有一个深度嵌套的文档结构,如下所示: 我正在尝试更新集合以插入新配置,如下所示: 我正在mongo(Python)中尝试类似的内容: 但是,我得到了“如果没有包含数组的相应查询字段,则无法应用位置运算符”错误。在mongo这样做的正确方式是什么?这是mongo v2。4.1.

  • 我正在尝试更新嵌套数组中的值,但无法使其工作。 我的对象是这样的 提前谢谢!

  • 本文向大家介绍MongoDB查询中如何更新嵌套文档,包括了MongoDB查询中如何更新嵌套文档的使用技巧和注意事项,需要的朋友参考一下 要更新嵌套文档,请使用update(),并在其中使用点号。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是更新嵌套文档的查询- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-

  • 我的mongoDB记录就像在这个链接更新嵌套数组mongob和示例记录如下,想要更新嵌套文档“参数”数组中的一个字段,前提是它满足一些条件(_id:“04”,操作。_id:“100”和operations.parameters.pid:“012”),此更新查询UPDATES错误嵌套记录(operations.parameters.pid:“011”),请帮助我哪里出错了: 我的更新查询如下: 我使

  • 我正在使用平均堆栈在网格中显示以下数组。 嵌套数组:

  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太