Я этот вопрос:Как спрятать _id из Aggregation?
produits = yield motor.Op(db.users.aggregate, [{"$unwind":"$pup"},{"$match":{"pup.spec.np":nomp}}, {"$group":{"_id":"$pup.spec.id","pup":{"$push":"$pup"}}}])
результат даст мне это:
print produits
{u'ok': 1.0, u'result': [{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]}
так что я могу сделать:
prod = produits["result"]
[{u'_id': None, u'pup': [{u'avt': {u'fto': ..all the results}}]}]
но как я скрыть "_id"
так я могу только получить
[{u'pup': [{u'avt': {u'fto': ..all the results}}]}]
в обычных запросах я просто добавляю что-то вроде {"_id":0}
здесь, он не работает.
поэтому я должен добавить $ project operator? –
, добавив его в конец giveme error, как это положить '[{" $ unwind ":" $ pup "}, {" $ match ": {" pup.spec.np ": nomp}}, {" $ group ": {" _ id ":" $ pup.spec.id "," pup ": {" $ push ":" $ pup "}}}, {" $ project ": {" _ id ": 0}} ] ' –
Глядя на вашу команду, похоже, что вы группируете значение null. Я не знаком с синтаксисом, но если вы просто хотите исключить _id из вывода, поместите '{$ project: {_id: 0, pup: 1}}' как последний op на конвейер – sambomartin