đầu tiên của tất cả tôi mới đến mongo vì vậy tôi không biết nhiều và tôi không thể chỉ loại bỏ các hàng trùng lặp do một số phụ thuộc.Mongo Distinct Query với đối tượng đầy đủ hàng
Tôi có dữ liệu sau đây được lưu trữ trong 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'}
bạn có thể thấy một số các hàng là trùng lặp với id khác nhau miễn là nó sẽ làm để giải quyết vấn đề này từ đầu vào tôi phải giải quyết nó trên đầu ra.
tôi cần những dữ liệu theo cách sau:
{'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'}
truy vấn của tôi
keys = db.collection.distinct('key', {})
all_data = db.collection.find({'key': {$in: keys}})
Như bạn có thể nhìn thấy nó mất hai truy vấn cho một kết quả tương tự thiết lập Hãy kết hợp nó với một là cơ sở dữ liệu rất lớn
Tôi cũng có thể tạo unique key
trên key
nhưng giá trị quá dài (152 ký tự) rằng nó sẽ không giúp tôi.
Hoặc nó sẽ ??
có thể trùng lặp của [Remove Duplicates từ MongoDB] (http://stackoverflow.com/questions/ 31557053/remove-duplicates-from-mongodb) –
Có thể không "chính xác" trong phần "loại bỏ", nhưng chắc chắn trong phần nhận dạng. Về cơ bản bạn cần phải '$ nhóm' trên các trường chung và sau đó trả về bất kỳ trường phụ trợ nào khác với' $ first' –