【发布时间】:2014-04-01 01:35:10
【问题描述】:
如何获取数组中子文档元素的计数以及如何在 MongoDB 中更新子文档的键
例如,以下是存储在 mongodb 中的整个文档:
{
"CompanyCode" : "SNBN",
"EventCode" : "ET00008352",
"EventName" : "Sunburn Presents Avicii India Tour",
"TktDetail" : [
{
"Type" : "Category I",
"Qty" : {
"10-Dec" : {
"value" : 58
},
"11-Dec" : {
"value" : 83
},
"12-Dec" : {
"value" : 100
}
}
},
{
"Type" : "Category II",
"Qty" : {
"10-Dec" : {
"value" : 4
},
"11-Dec" : {
"value" : 7
},
"12-Dec" : {
"value" : 8
}
}
},
{
"Type" : "PRICE LEVEL 1",
"Qty" : {
"11-Dec" : {
"value" : 2
}
}
},
{
"Type" : "CatIV",
"Qty" : {
"18-Dec" : {
"value" : 20
}
}
}
],
"TransDate" : [
"10-Dec-2013",
"11-Dec-2013",
"12-Dec-2013",
],
"VenueCode" : "SNBN",
"VenueName" : "Sunburn",
"_id" : ObjectId("52452db273b92012c41ad612")
}
这里的 TktDetail 是一个数组,里面有一个包含多个元素的 Qty 子文档,我想知道如何获取每个索引 Qty 内的元素计数?
例如,TktDetail 数组的第 0 个索引包含 1 个 Qty 子文档,该子文档的元素计数为 3,而第 3 个索引在 Qty 子文档中的元素计数为 1。
如果我想更新 subdoc 键,例如,我想将 Qty 中的日期从“10-Dec”更新为“10-Dec-2013”,怎么可能?
提前致谢,期待尽快回复..
【问题讨论】:
-
有人(还不是我)刚刚对你投了反对票,因为你没有像网站要求你做的那样格式化你的数据块。 DONT SHOUT 一切都以粗体显示。未来的注意事项。但是现在你可能会得到一些帮助。
-
现在。您的问题是(澄清)您想要更新 Qty 下子文档中的值。对吗?
-
感谢 Neil 为我提供未来注意事项的建议。我不想更新 Qty 中的 value 字段,我想更新存储在数组 TktDetail 中的 Qty 中的键名,例如:如果它是“10-Dec”,那么我想将其更新为“10 -2013 年 12 月”。
-
我也想知道,我怎样才能得到每个索引数量内的元素数量,第 0 个索引的数量有 3 作为计数,第 3 个索引的数量有 1 作为计数,以dis方式?
标签: arrays mongodb subdocument