Mongoose некоторое поле не вставлено [дубликат]

Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.

Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.

83
задан Christopher Tarquini 20 March 2011 в 20:22
поделиться

4 ответа

Я думаю, что это то, что вы ищете Mongoose Strict

option: strict

Строгая опция (включена по умолчанию), гарантирует, что значения, добавленные в наш экземпляр модели, которые не были указаны в нашей схеме, не сохраняются в db.

Примечание. Не устанавливайте значение false, если у вас нет веских причин.

    var thingSchema = new Schema({..}, { strict: false });
    var Thing = mongoose.model('Thing', thingSchema);
    var thing = new Thing({ iAmNotInTheSchema: true });
    thing.save() // iAmNotInTheSchema is now saved to the db!!
121
ответ дан Leandros 1 September 2018 в 10:32
поделиться

Эй, Крис, посмотрите на Mongous . У меня была та же проблема с мангустом, поскольку мои схемы очень часто изменяются прямо сейчас в процессе разработки. Монгуйский позволил мне иметь простоту Мангуста, хотя я мог свободно определять и изменять свои «схемы». Я решил просто создать стандартные объекты JavaScript и сохранить их в базе данных, например

function User(user){
  this.name = user.name
, this.age = user.age
}

app.post('save/user', function(req,res,next){
  var u = new User(req.body)
  db('mydb.users').save(u)
  res.send(200)
  // that's it! You've saved a user
});

. Это намного проще, чем Mongoose, хотя я действительно считаю, что вы пропустили какой-то классный материал промежуточного уровня, например «pre». Мне это ни в коем случае не нужно. Надеюсь, это поможет !!!

12
ответ дан Hacknightly 1 September 2018 в 10:32
поделиться

На самом деле режим «Смешанный» (Schema.Types.Mixed) выглядит так, что в Mongoose ...

он принимает объект JS без произвольной формы, поэтому все, что вы можете на него набросить. Кажется, вам нужно активировать сохранение этого объекта вручную после этого, но это похоже на справедливый компромисс.

Mixed

«Что угодно» SchemaType, его гибкость возникает при компромисс с ним сложнее поддерживать. Смешанный доступен либо через Schema.Types.Mixed, либо путем передачи пустого литерала объекта. Следующие эквиваленты:

var Any = new Schema({ any: {} });
var Any = new Schema({ any: Schema.Types.Mixed });

Поскольку это тип без схемы, вы можете изменить значение на все, что вам нравится, но Mongoose теряет способность автоматически обнаруживать и сохранять эти изменения. Чтобы «сказать» Mongoose, что значение смешанного типа изменилось, вызовите метод .markModified(path) документа, передающий путь к только что измененному типу Mixed.

person.anything = { x: [3, 4, { y: "changed" }] };
person.markModified('anything');
person.save(); // anything will now get saved
50
ответ дан Jossef Harush 1 September 2018 в 10:32
поделиться

Его больше невозможно.

Вы можете использовать Mongoose с коллекциями, у которых есть схема и драйвер узла или другой модуль mongo для этих схемных.

https: //groups.google.com/forum/#!msg/mongoose-orm/Bj9KTjI0NAQ/qSojYmoDwDYJ

-8
ответ дан masylum 1 September 2018 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: