将mongodb与pymongo一起使用,我有以下文档:
{
"_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"
}
]
}
我想更新示例子文档(这是一个数组元素,因为可能有多个示例)。我有以下代码,但它不工作...
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"],
}}
)
谁能告诉我这个有什么问题吗?
请看一下您的update语句,其中您使用冗余的:
指定了$set
修饰符
。。。{'$set:':{…
只要删除它,所有将工作:)
我有一个深度嵌套的文档结构,如下所示: 我正在尝试更新集合以插入新配置,如下所示: 我正在mongo(Python)中尝试类似的内容: 但是,我得到了“如果没有包含数组的相应查询字段,则无法应用位置运算符”错误。在mongo这样做的正确方式是什么?这是mongo v2。4.1.
假设我们有以下集合,我对此没有什么问题: > 我想增加“item_name”的价格:“my_item_two”,如果它不存在,应该将它追加到“items”数组中。
问题内容: 我正在使用MongoDB数据库,该数据库的收集模型包括 班级 , 学生 , 学科 和[学术] 表现 。以下是基于猫鼬的架构和模型: 该集合的文件是最复杂的地段; 示例文档为: 我能够使用以下代码检索现有的班级文档并将其添加到分数中: 但是,如何添加/更新/删除该特定学生的成绩?我需要能够通过以下方式与集合进行交互: 检索所有学生或特定学生的分数(检索数组中的特定元素) 为特定主题添加/
我有一份这样的文件: 我想通过将其与数量字段(2*800)相乘来更新价格字段,其中的结果将更新/分配给价格。(对于本例,价格更新为1600)。 更新后的文档: 我的选择查询如下: 我怎样才能做到这一点?
我的mongoDB记录就像在这个链接更新嵌套数组mongob和示例记录如下,想要更新嵌套文档“参数”数组中的一个字段,前提是它满足一些条件(_id:“04”,操作。_id:“100”和operations.parameters.pid:“012”),此更新查询UPDATES错误嵌套记录(operations.parameters.pid:“011”),请帮助我哪里出错了: 我的更新查询如下: 我使
我需要更新Mongo DB中另一个文档内的数组中的一个文档