Node.js/mongoose
[mongoose] Query 옵션: new
Labhong
2018. 7. 30. 17:05
반응형
다음과 같이 find종류인 findOneAndUpdate, findByIdAndUpdate 쿼리를 이용하여 컬렉션에 존재하는 스키마의 데이터를 업데이트 하는 일이 주어졌다고 하자.
다음은 스키마 정의 부분이다.
const userSchema = new mongoClient.Schema({
name: {
type: String,
required: true,
unique: true
},
category: {
team: Number,
categoryType: String
},
gender: {
type: String,
enum: ["male", "female"],
required: true
},
createOn: Date
});
다음은 name이 kkki인 원래의 document이다.
{ category: { categoryType: 'fast' },
_id: 0,
name: 'kkki',
gender: 'male',
createOn: 2018-07-30T07:14:37.404Z,
__v: 0 }
다음은 findOneAndUpdate 구문이다.
userSchema.findOneAndUpdate({name: "kkki"},
{category: {categoryType: req.body.updateType}}).exec()
.then((updateUser)=> {
console.log(updateUser);
})
위의 쿼리를 실행하면 바뀌기 전의 document의 정보가 then의 callback 함수를 통해 나온다.
userSchema.findOneAndUpdate({name: "kkki"},
{category: {categoryType: req.body.updateType}}).exec()
.then((updateUser)=> {
console.log(updateUser);
})
만약 Update를 실행한 뒤의 정보를 받고 싶다면 new 옵션을 사용해야 한다.
userSchema.findOneAndUpdate({name: "kkki"},
{category: {categoryType: req.body.updateType}},
{new: true}).exec()
.then((updateUser)=> {
console.log(updateUser);
res.send('ok');
})
반응형