【发布时间】:2016-03-21 01:17:59
【问题描述】:
我的文档应该是这样的,一个 id 最多有 20 个工作中心,每个工作中心可能有一些问题。一旦 id 前进到下一个工作中心,每个工作中心数组就会关闭或阻止进一步输入。
{
_id: "C7700258wcL4MSB050",
WorkCenters: [
{
workCenter: "L4MSB050",
Issues: [
{
issueType: "Material Movement",
issueDuration: 14
},
{
issueType: "Communication COA",
issueDuration: 20
},
{
issueType: "Lack of Tool",
issueDuration: 12
}
]
},
{
workCenter: "L4MSB060",
Issues: [
{
issueType: "Material Movement",
issueDuration: 14
},
{
issueType: "Communication COA",
issueDuration: 20
},
{
issueType: "Lack of Tool",
issueDuration: 12
}
]
}
]
}
我现在所拥有的是:
TaktIssue.update({_id: centerId}, {$addToSet: {WorkCenters: {workCenter: workCenter, Issues: {issueType: issueType, issueDuration: minutes_2}}}});
这是我想要的……
{
_id: "C7700254workCenter",
WorkCenters: [
{
workCenter: "L4MSB010",
Issues: {
issueType: "Tech Error",
issueDuration: 0
}
}
]
}
但同一工作中心的第二个条目是对第一个条目的完整添加,而不仅仅是问题类型和时间。 并且一个新的 workCenter 不会添加一个新的数组。
{
_id: "C7700254workCenter",
WorkCenters: [
{
workCenter: "L4MSB010",
Issues: {
issueType: "Tech Error",
issueDuration: 0
}
},
{
workCenter: "L4MSB010",
Issues: {
issueType: "Lack of Tool",
issueDuration: 0
}
},
{
workCenter: "L4MSB020",
Issues: {
issueType: "Material Movement",
issueDuration: 0
}
},
{
workCenter: "L4MSB020",
Issues: {
issueType: "Tech Error",
issueDuration: 0
}
}
]
}
我希望它对我想要完成的事情半途而废。 任何帮助或提示都非常感谢。 谢谢
【问题讨论】:
-
其实它不是你想要的。请注意,
"Issues"包含一个“对象”{},而不是数组[]。仅此一项就应该向您突出问题。有趣的是,这里只是几个问题:Add Unique only to array and keep field count on update,虽然出于不同的目的,但至少应该为您指明正确的方向。 -
我认为这是个好主意 :) 也许这就是为什么我找不到信息如何像我想做的那样去做。
标签: mongodb meteor mongodb-query