[MONGODB] 콜백없이 몽구스 갱신
MONGODB콜백없이 몽구스 갱신
나는 전형적인 스키마와 모델을 가지고 :
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
email: String,
password: String,
profile: {
name: String,
surname: String,
photo: String
},
stats: {
lastLogin: { type: Date, default: Date.now },
loginCount: Number,
lastIP: String
},
source: String,
deleted: Boolean,
dateCreated: { type: Date, default: Date.now }
});
mongoose.model('User', userSchema);
나는이 업데이트를 수행 할 때, 내가 콜백을 정의하는 경우에만, 다른 작동 단순히 실행하지만 값이 데이터베이스에 변경되지 않습니다 :
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}});
이 작품 :
User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}}, function() {});
이 버그인가요? 내가 여기서 뭔가 빠진 것 같아요 ... 콜백이 필요한 경우 나 문서에 표시되지 않습니다하지만이 요구하는 이상하다.
참고 : 나는 테스트를 위해 이메일로 일치하고있어 내가 간단한 익스프레스 v3.0.6 설치와 NodeJS의 v0.8.17에 몽구스 v3.5.4을 사용하고, 제안한다.
미리 감사드립니다.
해결법
-
==============================
1.몽구스와 전화 업데이트에 대한 올바른 방법은 다음과 같다 :
몽구스와 전화 업데이트에 대한 올바른 방법은 다음과 같다 :
User.update(query, update).exec(callback);
당신이 콜백 건너 뛸 수있을 것입니다 이런 식으로 :
User.update(query, update).exec();
때 호출
User.update(query, update)
그것은 질의 객체를 반환합니다.
당신이 그것을 실행하기 전에 쿼리 개체를 조작 할 수 있기 때문에, 당신은 당신의 데이터베이스를 조회 할 때 매우 유용합니다. 예를 들어, 찾기 쿼리에 대한 제한을 지정할 수 있습니다 :
User.find(query).limit(12).exec(callback);
업데이트가 그것 때문에 유용하지 불구하고, 같은 메커니즘을 사용합니다.
from https://stackoverflow.com/questions/14613890/mongoose-update-without-callback by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 왜 OBJECTID과 _id는 배열에 새 개체를 추가하여 MongoDB의 $ 푸시를 사용하는 경우에 추가됩니다? (0) | 2019.12.12 |
---|---|
[MONGODB] MongoDB의 쿼리 특정 달 | 년되지 날짜 (0) | 2019.12.12 |
[MONGODB] NumberLong으로 간단한 정수 사이 MongoDB의 차이? (0) | 2019.12.12 |
[MONGODB] MongoDB를 - 가장 가까운 정수 값을 찾기 문서 (0) | 2019.12.12 |
[MONGODB] 시간이 초과 CompositeServerSelector를 사용하여 서버를 선택 30000ms 후에 발생한 (0) | 2019.12.12 |