首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在嵌套子文档数组中更新子文档

如何在嵌套子文档数组中更新子文档
EN

Stack Overflow用户
提问于 2015-03-30 15:12:48
回答 1查看 120关注 0票数 2

使用mongodb与pymongo,我有以下文档:

代码语言:javascript
复制
{
    "_id" : ObjectId("5515d697453d9a1975123e0b"),
    "Study_Attributes" : [ 
        {
            "value" : "183",
            "tag" : "height",
            "unit" : "cm"
        }, 
        {
            "value" : "92",
            "tag" : "weight",
            "unit" : "kg"
        }
    ],
    "Center_Project_Name" : "prj001",
    "Study_Abstract" : "THIS IS THE ABSTRACT",
    "Study_Description" : "---",
    "Study_Title" : "Study of Wheat",
    "Center_Name" : "cc001",
    "samples" : [ 
        {
            "Scientific_Name" : "aribido",
            "Anonymized_Name" : "XXX001",
            "Description" : "cress",
            "Characteristics" : [ 
                {
                    "value" : "",
                    "id" : ObjectId("5515d6f5453d9a1975123e0c"),
                    "tag" : "",
                    "unit" : ""
                }
            ],
            "Sample_Name" : "XXX001",
            "Common_Name" : "mustard cress",
            "Term_Accession_Number" : "19879",
            "Individual_Name" : "xx1",
            "Taxon_ID" : "19879",
            "_id" : ObjectId("5515d6f5453d9a1975123e0d"),
            "Term_Source_REF" : "TODO:ONTOTLOGY_ID",
            "Protocol_REF" : "TODO:PROTOCOL_STRING",
            "Source_Name" : "cthulu"
        }
    ]
}

我想更新示例子文档(这是一个数组元素,因为可能有多个样本)。我有下面的代码,但它不起作用.

代码语言:javascript
复制
EnaCollections.update(
            {"_id": o.ObjectId(study_id), "samples._id": o.ObjectId(sample_id)},
            {'$set:': {
                "samples.$.Source_Name": sample['Source_Name'],
                "samples.$.Characteristics": spec_attr,
                "samples.$.Term_Source_REF": "TODO:ONTOLOGY",
                "samples.$.Protocol_REF": "TODO:PROTOCOL_STRING",
                "samples.$.Sample_Name": sample['Anonymized_Name'],
                "samples.$.Individual_Name": sample['Individual_Name'],
                "samples.$.Description": sample['Description'],
                "samples.$.Taxon_ID": sample['Taxon_ID'],
                "samples.$.Scientific_Name": sample['Scientific_Name'],
                "samples.$.Common_Name": sample['Common_Name'],
                "samples.$.Anonymized_Name": sample["Anonymized_Name"],
            }}
        )

有人能告诉我这个有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-06 10:45:36

查看update语句,其中使用冗余的$set修饰符指定了:修饰符

...{'$set:': {...

只要移除它,一切都会工作的:)

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

https://stackoverflow.com/questions/29349839

复制
相关文章

相似问题

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