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

在mongoose中只更改整个嵌入文档数组的一个字段

汪欣德
2023-03-14

我有一个列表模式和一个问题集模式。quetsionSet模式嵌入在列表模式中。工作正常,但如何更新嵌入文档数组中的任何内容,即,在这里,我想更改问题集(问题集文档数组)中所有文档的列表名。

下面是我的列表文档模型的一个例子

{ "_id" : ObjectId("60f2cc07275bbb30d8cb268e"), 
"listName" : "dsa", 
"aboutList" : "dsa queestions",
 questionSet" : [ { "solved" : false, 
                   "_id" : ObjectId("60f2cc12275bbb30d8cb2695"), 
                    "topic" : "array", 
                     "name" : "array is best", 
                    "url" : "www.arr.com", 
                       "listname" : "dsa", 
                     "__v" : 0 }, 
               { "solved" : false,  
                 "_id" : ObjectId("60f2cc1b275bbb30d8cb269d"), 
                "topic" : "linked list",
               "name" : "reverse list", 
                 "url" : "www.list.com",
                "listname" : "dsa",
                 "__v" : 0 } 
               ], 
"__v" : 2 
}

共有1个答案

胥康安
2023-03-14

您可以在您的案例中使用以下内容

db.<collection_name>.updateOne(
    {   "_id" : ObjectId("60f2cc07275bbb30d8cb268e")},
    {
      $set: {
        'questionSet.$[].listname': "javascript"
      }
    } 
  )
 类似资料:
  • 我有一份这样的文件 上面的文档可以这样概括如下,便于理解。 我需要增加nums子文档中数量的值,该值位于产品子文档中,基于其\u id。 这是我迄今为止所尝试的,但它不起作用,因为我不知道如何捕获nums对象内的\u id,以便更新子子文档数组中的特定对象。 我怎样才能做到这一点?

  • 我需要更新Mongo DB中另一个文档内的数组中的一个文档

  • 我想要的是返回整个cidr数组。 我使用的是Mongo3.2和pymongo(Python3.7)

  • 我想使用mongoose从多个文档更新多个子文档。 我目前的代码是: 模式的一部分是: 但是这段代码只更新id arr中的最后一个元素。

  • 问题内容: 在Mongoose文档中的以下地址:http : //mongoosejs.com/docs/embedded- documents.html 有一条声明: DocumentArrays具有一个特殊的方法ID,该ID通过其_id属性(每个嵌入式文档获取一个)来过滤嵌入式文档: 考虑以下代码段: 我的问题是: 文档是否正确?如果是这样,那么我如何找出“ my_id”是什么(在示例中),以

  • 我试图更新一个子文档(有效),然后更新除上一个子文档之外的多个子文档。基本上,每次