Я просто хочу, чтобы добавить новое поле через $project
трубопровода и пусть другие свойства проскочить для дальнейшей обработки, я знаю, что вы можете сделать это:
db.people.aggregate([
{$project: {name: 1, address: 1, birth_month: {$month: "$birthdate"}}}
])
Но все более и более сложным документом, у меня есть большая трудность написать 20 ++ имя поля в $project
. Могу ли я просто добавить поле через агрегацию трубопровода таким образом, что я не имею к указанной другой области один за другим, что-то вроде
db.people.aggregate([
{$appendField: {birth_month: {$month: "$birthdate"}}}
])
в этом случае Dont добавить 20+ поля, а положить, что поле в проекте, который вы не хотите {$ Проекта: {имя: 0}} в этом случае она будет выбирать все поля, кроме имени. –
Я думаю, что вы неправильно поняли, я хочу сохранить исходный документ со всеми его полями в целости, но с дополнительным полем (birth_month) – DennyHiu
.... и без необходимости писать другие имена полей в $ project – DennyHiu