Przede wszystkim jestem nowy w mongo, więc nie wiem zbyt wiele i nie mogę po prostu usunąć zduplikowanych wierszy z powodu pewnych zależności.Mongo Distinct Query z pełnym wierszem obiektu
Mam następujące dane przechowywane w Mongo
{'id': 1, 'key': 'qscderftgbvqscderftgbvqscderftgbvqscderftgbvqscderftgbv', 'name': 'some name', 'country': 'US'},
{'id': 2, 'key': 'qscderftgbvqscderftgbvqscderftgbvqscderftgbvqscderftgbv', 'name': 'some name', 'country': 'US'},
{'id': 3, 'key': 'pehnvosjijipehnvosjijipehnvosjijipehnvosjijipehnvosjiji', 'name': 'some name', 'country': 'IN'},
{'id': 4, 'key': 'pfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnew', 'name': 'some name', 'country': 'IN'},
{'id': 5, 'key': 'pfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnew', 'name': 'some name', 'country': 'IN'}
można zobaczyć niektóre z wierszy są duplikaty z innym identyfikatorem tak długo, jak długo potrwa, aby rozwiązać ten problem z wejściem muszę zająć się nim na wyjściu.
muszę dane w następujący sposób:
{'id': 1, 'key': 'qscderftgbvqscderftgbvqscderftgbvqscderftgbvqscderftgbv', 'name': 'some name', 'country': 'US'},
{'id': 3, 'key': 'pehnvosjijipehnvosjijipehnvosjijipehnvosjijipehnvosjiji', 'name': 'some name', 'country': 'IN'},
{'id': 4, 'key': 'pfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnewpfvvjwovnew', 'name': 'some name', 'country': 'IN'}
Moje zapytanie
keys = db.collection.distinct('key', {})
all_data = db.collection.find({'key': {$in: keys}})
Jak widać trwa dwa zapytania dla tego samego zbioru wyniku Proszę połączyć go do jednego jako baza danych jest bardzo duża
Mogę również utworzyć unique key
na key
, ale wartość jest tak długa (152 znaki), że mi to nie pomoże.
Albo będzie?
Możliwy duplikat [Usuń duplikaty z MongoDB] (http://stackoverflow.com/questions/ 31557053/remove-duplicates-from-mongodb) –
Może nie "dokładnie" w części "usuwanie", ale z pewnością w części identyfikacyjnej. Zasadniczo musisz '$ group' na wspólnym polu (ach), a następnie zwrócić wszystkie inne pomocnicze pola z' $ first' –