Я пытаюсь просмотреть запись / создание, в которой не допускается наличие нескольких экземпляров в базе данных (поэтому нет дубликатов).Я посмотрел на updateOne
с {upsert:true}
, и это не сработает для меня, потому что это работает, только если у вас есть определенный набор данных.
пример данных:
cat:{
name: "jim",
age: 8
}
пример модели:
cat:{
name: String
}
код, который у меня был:
object.updateOne(req.body,req.body,{upsert:true},function(err,object){
if(err) console.log(err);
res.json(object);
})
}else{
res.json('error: type: '+ req.params.type + 'not found !');
}
, но это работает, только если я добавлю 'age'
к своей модели.из-за политики {strict:true}
на updateOne
.и когда я использую сообщение, я получаю несколько экземпляров одного и того же объекта.
, так что, надеюсь, кто-то может мне помочь.(и если кто-то знает лучший заголовок для этой проблемы, пожалуйста, прокомментируйте его ниже).Я не знал, как описать мою проблему одним предложением.
(имейте в виду, что на самом деле у меня есть набор данных со 100+ атрибутами и мне нужно только 60).просто добавление возраста не поможет моему набору данных.потому что тогда у меня есть 40 неиспользуемых значений в моем документе.
Редактировать:
после просмотра кода, опубликованного в качестве ответа ниже, я заметил, что допустил ошибку в своем собственном коде.Вот как должен выглядеть код:
object.updateOne({},req.body,{upsert:true},function(err,object){
if(err) console.log(err);
res.json(object);
})
}else{
res.json('error: type: '+ req.params.type + 'not found !');
}