mam tej kwerendy:Jak ukryć _id od Aggregation?
produits = yield motor.Op(db.users.aggregate, [{"$unwind":"$pup"},{"$match":{"pup.spec.np":nomp}}, {"$group":{"_id":"$pup.spec.id","pup":{"$push":"$pup"}}}])
wynik dał mi tak:
print produits
{u'ok': 1.0, u'result': [{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]}
więc mogę zrobić:
prod = produits["result"]
[{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]
ale jak mogę ukryć "_id"
więc mogę tylko uzyskaj
[{u'pup': [{u'avt': {u'fto': ..all the results}}]}]
w normalnych zapytaniach dodam tylko coś takiego, jak {"_id":0}
tutaj nie działa.
, więc muszę dodać operatora $ project? –
dodanie go na końcu daje błąd, jak to się nazywa "[{" $ unwind ":" $ pup "}, {" $ match ": {" pup.spec.np ": nomp}}, {" $ group ": {" _ id ":" $ pup.spec.id "," pup ": {" $ push ":" $ pup "}}}, {" $ project ": {" _ id ": 0}} ] ' –
Patrząc na twoje polecenie, wygląda na to, że grupa jest pusta. Nie jestem zaznajomiony ze składnią, ale jeśli chcesz tylko wyeliminować _id z wyjścia, umieść '{$ project: {_id: 0, pup: 1}}' jako ostatnią operację na rurociągu – sambomartin