【发布时间】:2015-05-15 04:17:04
【问题描述】:
这是我的架构的设计。 (显示了 1 个文档,以 db 为单位总计数千个)。一切都在同一个集合中。
文档 1:
{
pageNumber: 0,
results: [
{
jobkey: "AAA",
},
{
jobkey: "BBB",
},
{
jobkey: "CCC",
}
]
}
文档 2:
{
pageNumber: 0,
results: [
{
jobkey: "RRR",
},
{
jobkey: "VVV",
},
{ //This Entire Object needs to be removed
jobkey: "AAA", //Duplicate jobkey value of document 1
//remaining objects in array should stay
}
]
}
每个文档都有一个包含对象数组的结果键。这些对象中的每一个都有一个作业键和相应的值。在给定的结果数组中,没有两个作业键具有相同的值。
问题:
每当数据库中多次出现作业键值时,我需要删除其中一个重复对象。相同的 jobkey 值可能出现在多个结果数组中。
我一直无法找到在 mongo shell 或通过 mongoose 完成此操作的方法。
【问题讨论】:
-
作业密钥不能在一个文档中重复在中,或者在不同文档中重复?不同文档中可以有相同的jobkey吗?
-
另外,您需要从现有文档中删除重复项,还是只删除未来的?
-
我只需要从现有数据库中删除重复项。我以后不会添加任何其他记录。上面的代码示例显示了一个文档。该文档中没有任何重复项。但是下一个文档可能有一个结果键,其中包含与上面列出的值重复的作业键。让我知道这是否有意义?我将努力粘贴一个确切的例子。
标签: javascript mongodb mongoose mongodb-query aggregation-framework