Tôi đã truy vấn này:Làm thế nào để ẩn _id khỏi tập hợp?
produits = yield motor.Op(db.users.aggregate, [{"$unwind":"$pup"},{"$match":{"pup.spec.np":nomp}}, {"$group":{"_id":"$pup.spec.id","pup":{"$push":"$pup"}}}])
kết quả cho tôi này:
print produits
{u'ok': 1.0, u'result': [{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]}
vì vậy tôi có thể làm:
prod = produits["result"]
[{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]
nhưng làm thế nào để che giấu "_id"
vì vậy tôi chỉ có thể nhận được
[{u'pup': [{u'avt': {u'fto': ..all the results}}]}]
trong truy vấn bình thường tôi chỉ cần thêm một cái gì đó như {"_id":0}
ở đây nó không hoạt động.
vì vậy tôi phải thêm $ dự án nhà điều hành? –
thêm nó vào cuối cho một lỗi, làm thế nào để nó đặt nó [{"$ thư giãn": "$ pup"}, {"$ match": {"pup.spec.np": nomp}}, {" $ group ": {" _ id ":" $ pup.spec.id "," pup ": {" $ push ":" $ pup "}}}, {" $ project ": {" _ id ": 0}} ] ' –
Nhìn vào lệnh của bạn, có vẻ như những gì bạn đang nhóm theo là null. Tôi không quen thuộc với cú pháp, nhưng nếu bạn chỉ muốn loại bỏ _id khỏi đầu ra, hãy đặt '{$ project: {_id: 0, pup: 1}}' làm op cuối cùng trên đường ống – sambomartin