Json Mongodb将对象插入到另一个属性内的数组中
我需要更新一个文件,插入一个投标到投标数组,这是投标的一部分。下面是一个示例文档:Json Mongodb将对象插入到另一个属性内的数组中,json,database,mongodb,mongodb-update,Json,Database,Mongodb,Mongodb Update,我需要更新一个文件,插入一个投标到投标数组,这是投标的一部分。下面是一个示例文档: { "_id" : "1044300051", "Bids" : { "Bid" : [ { "Bidder" : { "_id" : "pickford25", "_Rating" : 255, "Location" : "ANIME PARADISE",
{
"_id" : "1044300051",
"Bids" : {
"Bid" : [
{
"Bidder" : {
"_id" : "pickford25",
"_Rating" : 255,
"Location" : "ANIME PARADISE",
"Country" : "USA"
},
"Time" : "Dec-07-01 15:02:54",
"Amount" : 1.12
},
{
"Bidder" : {
"_id" : "arlnwtkwsk@aol.com",
"_Rating" : 61,
"Location" : "ARCADE, NEW YORK",
"Country" : "USA"
},
"Time" : "Dec-09-01 15:02:54",
"Amount" : 1.25
}
]
}
}
以下是我尝试过的一些查询:
db.items.update({_id: "1678348584"}, {$set: {Bids: "Bid[]"}},{$push: {"Bids.Bid": {"Amount":1000}}});
db.items.update({_id: "1678348584"}, {$push: {"Bids": [{"Amount":1000}]}});
在上面的示例中,我试图更新的特定id最初将“Bids”设置为null您就快到了。要访问嵌套数组,必须使用
Bids.Bid
。您的查询应该类似于
db.items.update({_id: "1678348584"}, {$push: {"Bids.Bid": {"Amount":1000}}});
这给了我这个错误:WriteResult({“nMatched”:0,“nUpserted”:0,“nModified”:0,“writeError”:{“code”:16837,“errmsg”:“位置运算符没有从查询中找到所需的匹配项。未展开的更新:Bids.$.Bid”})我刚才看到了这一点。更新了查询。这导致了错误:“code”:16837,“errmsg”:“无法使用部分(Bids of Bids.Bid)遍历元素({Bids:null})”-我试图更新的特定ID的Bids初始设置为null。好吧,您在问题中没有提到对不起,我不知道这会影响答案。我将编辑这个问题。