У меня есть 1 миллион документов в mongodb. Я хочу найти и удалить те же поля. Можете ли вы дать мне способ или идею?Как найти и отменить такое же значение поля в mongodb
Мои документы, как это:
{
"regions" : [
{"id" : "1", "name" : "World"},
{"id" : "10370","name" : "South America"},
{"id" : "1426","name" : "Suriname"}
]
}
{
"regions" : [
{"id" : "1", "name" : "World"},
{"id" : "10370","name" : "South America"},
{"id" : "1426","name" : "Suriname"}
]
}
{
"regions" : [
{"id" : "1","name" : "World"},
{"id" : "1734","name" : "USA"},
{"id" : "1136","name" : "Pennsylvania"},
{"id" : "16962","name" : "Greater Philadelphia area"},
]
}
{
"regions" : [
{"id" : "1","name" : "World"},
{"id" : "1734","name" : "USA"},
{"id" : "1136","name" : "Pennsylvania"},
{"id" : "16962","name" : "Greater Philadelphia area"},
]
}
{
"regions" : [
{"id" : "1","name" : "World"},
{"id" : "34964","name" : "Oceania"},
{"id" : "15","name" : "Australia"},
{"id" : "470","name" : "Western Australia"},
{"id" : "36282","name" : "Perth"},
]
}
Как мне изменить так:
{
"regions" : [
{"id" : "1", "name" : "World"},
{"id" : "10370","name" : "South America"},
{"id" : "1426","name" : "Suriname"}
]
}
{
"regions" : [
{"id" : "1","name" : "World"},
{"id" : "1734","name" : "USA"},
{"id" : "1136","name" : "Pennsylvania"},
{"id" : "16962","name" : "Greater Philadelphia area"},
]
}
{
"regions" : [
{"id" : "1","name" : "World"},
{"id" : "34964","name" : "Oceania"},
{"id" : "15","name" : "Australia"},
{"id" : "470","name" : "Western Australia"},
{"id" : "36282","name" : "Perth"},
]
}
Спасибо за ваш ответ и интерес заранее.
UPDATE: Я пытаюсь этот код:
db.collection.aggregate(
{"$group":{"_id": {"id": "$regions.id","name": "$regions.name"},}},
{"$group":{"_id":ObjectId(),"regions": { "$push": {"id": "$_id.id","name": $_id.name"}}}},
{"$unwind": "$regions"},
{"$out": "newcollection"}
)
Это дает эту ошибку: "ERRMSG": "вставить за $ из не удалось: {ConnectionID: 111, эээ: \" E11000 дублируют ключи ошибки: индекс collection.tmp.agg_out.12: идентификатора DUP ключа: {: ObjectId ('5767f378ff8f5e9302d95bc8')} \ "код: 11000, п: 0, хорошо: 1,0}",
Как я могу дать уникальный ключ?
Непонятно, что вы хотите сделать здесь. Вы хотите удалить дубликаты из коллекции? – styvane
Да, я хочу удалить дублирующее поле. – tabarly