2013-05-03 3 views
0

У меня есть несколько схем с несколькими глубинами Mongoose. При создании/обновлении я в настоящее время назначаю каждое предоставленное значение из объекта json в поле объекта. Однако я хотел бы сделать пару вещей. Для одного я хотел бы автоматически удалить нулевые значения, чтобы предотвратить попытку Mongoose проверять их, а во-вторых, я не хотел бы отдельно назначать каждое значение/поле, но передать ему весь json-объект и обработать эту процедуру с помощью этого метода - я предполагаю что если в объекте json есть дополнительные/не существующие поля, они просто будут отброшены. Мое решение состоит в том, чтобы создать функцию, которая будет рекурсивно проходить через объект json, удаляя как нулевые значения, так и запрещенные поля (т. Е. Created_at, _id и т. Д.), А затем просто передает остальное и сохраняет. Есть ли у кого-нибудь предложение что-то в Mongoose, которое уже делает это, или из-за проблем, которые я не вижу с этим подходом?Лучшая практика создания/обновления объектов Mongoose

ответ

0

Может быть, этот метод является то, что вы хотите findByIdAndUpdate

В самом деле, если вы используете метод сохранения(), он только обновит поле, изменилось:

result.true_name = "test233334";
результат.save();

Журнал: Mongoose: admins.update({ _id: ObjectId("51b5af1a370c3fa716000001") }) { '$set': { true_name: 'test233334', updated_at: new Date("Mon, 10 Jun 2013 10:49:38 GMT") } } {}