[MONGODB] 왜 OBJECTID과 _id는 배열에 새 개체를 추가하여 MongoDB의 $ 푸시를 사용하는 경우에 추가됩니다?
MONGODB왜 OBJECTID과 _id는 배열에 새 개체를 추가하여 MongoDB의 $ 푸시를 사용하는 경우에 추가됩니다?
나는 Node.js를하고 몽구스를 사용하고 있습니다. 선수 및 대회 변수는 몽구스의 객체 직전 가져.
나는 플레이어 오브젝트의 tournamentSessions 필드에 새 tournamentSession 객체 (안 몽구스 개체)를 추가하고 싶습니다. 나는 (이하 "$ 네브라스카"을 사용) 나도 같은 tournement을 두 번 추가 해달라고 있는지 확인 할 수 있도록 findOneAndUpdate을 사용하고 있습니다
Player.findOneAndUpdate({
'_id': player._id,
'tournamentSessions.tournament': {
'$ne': tournament._id
}
}, {
'$push': {
'tournamentSessions': {
'tournament': tournament._id,
'level': 1,
'status': 'LIMBO',
'score': 0,
}
}
}, function(err, updatedPlayer) {
// ...
});
OBJECTID를 포함하는 "_id"필드는 tournamentSessions 배열 내부의 새로 추가 된 세션에 추가 된 것을 제외하고 모든 것이 잘 작동하고, 이런 일이 왜 이해하지 못할.
내가 수동으로 "_id"필드를 추가하고 값 "BLABLABLA"로, 필드가 저장되지 않습니다 "_id"경우 (이 야해로, 그 스키마에 선언되지 사촌)
여기 예, 그리고는 스키마입니다 :
var Player = mongoose.model('Player', Schema({
createdAt: { type: Date, default: Date.now },
lastActiveAt: Date,
clientVersion: String,
tournamentSessions: [{
tournament: { type: Schema.Types.ObjectId, ref: 'Tournament' },
level: Number,
status: String,
score: Number
}],
friends: Array
}));
var Tournament = mongoose.model('Tournament', Schema({
createdAt: { type: Date, default: Date.now },
open: Boolean,
number: Number,
level: Number,
reactionLimit: Number,
deadlineAt: Date,
stats: {
total: Number,
limbo: Number,
blessed: Number,
damned: Number
}
}));
해결법
-
==============================
1.당신은 명시 적으로 false로 _id 옵션을 설정할 수 있도록 자신의 스키마와 tournamentSessions 배열을 정의하여 _id 필드를 비활성화 할 수 있습니다 :
당신은 명시 적으로 false로 _id 옵션을 설정할 수 있도록 자신의 스키마와 tournamentSessions 배열을 정의하여 _id 필드를 비활성화 할 수 있습니다 :
var Player = mongoose.model('Player', Schema({ createdAt: { type: Date, default: Date.now }, lastActiveAt: Date, clientVersion: String, tournamentSessions: [new Schema({ tournament: { type: Schema.Types.ObjectId, ref: 'Tournament' }, level: Number, status: String, score: Number }, { _id: false })], friends: Array }));
from https://stackoverflow.com/questions/20863441/why-is-an-id-with-objectid-added-to-when-using-mongodbs-push-to-add-new-objec by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를가 $ graphLookup를 사용하여 계층 적 쿼리 (0) | 2019.12.12 |
---|---|
[MONGODB] MongoDB를 갱신 어레이의 다수의 레코드 [중복] (0) | 2019.12.12 |
[MONGODB] MongoDB의 쿼리 특정 달 | 년되지 날짜 (0) | 2019.12.12 |
[MONGODB] 콜백없이 몽구스 갱신 (0) | 2019.12.12 |
[MONGODB] NumberLong으로 간단한 정수 사이 MongoDB의 차이? (0) | 2019.12.12 |