[MONGODB] 몽구스의 배열 스키마로 개체를 추진
MONGODB몽구스의 배열 스키마로 개체를 추진
나는이 몽구스 스키마를
var mongoose = require('mongoose');
var ContactSchema = module.exports = new mongoose.Schema({
name: {
type: String,
required: true
},
phone: {
type: Number,
required: true,
index: {unique: true}
},
messages: [
{
title: {type: String, required: true},
msg: {type: String, required: true}
}]
}, {
collection: 'contacts',
safe: true
});
이 작업을 수행하여 모델을 업데이트하려고 :
Contact.findById(id, function(err, info) {
if (err) return res.send("contact create error: " + err);
// add the message to the contacts messages
Contact.update({_id: info._id}, {$push: {"messages": {title: title, msg: msg}}}, function(err, numAffected, rawResponse) {
if (err) return res.send("contact addMsg error: " + err);
console.log('The number of updated documents was %d', numAffected);
console.log('The raw response from Mongo was ', rawResponse);
});
});
나는 개체의 배열을 취하도록 메시지를 선언 아니에요? ERROR : MongoError는 : 비 배열에 $ 푸시 / $ pushAll 수정을 적용 할 수 없습니다
어떤 아이디어?
해결법
-
==============================
1.몽구스는 한 번의 작업으로 당신을 위해이 작업을 수행합니다.
몽구스는 한 번의 작업으로 당신을 위해이 작업을 수행합니다.
Contact.findByIdAndUpdate( info._id, {$push: {"messages": {title: title, msg: msg}}}, {safe: true, upsert: true}, function(err, model) { console.log(err); } );
이 방법을 사용하여 스키마의 "사전"기능을 활용할 수 없다는 점을 명심하시기 바랍니다.
http://mongoosejs.com/docs/middleware.html
옵션 PARAM 그것에 추가 : 최신 mogoose findbyidandupdate 요구 같이 "진정한 새가"이 있습니다. 그렇지 않으면 당신은 당신에게 반환 된 문서를 얻을 것이다. 몽구스 버전 4.x.x의 변환에 대한 따라서 업데이트 :
Contact.findByIdAndUpdate( info._id, {$push: {"messages": {title: title, msg: msg}}}, {safe: true, upsert: true, new : true}, function(err, model) { console.log(err); } );
from https://stackoverflow.com/questions/15621970/pushing-object-into-array-schema-in-mongoose by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 이 필드를 MongoDB에 존재하는지 확인 (0) | 2019.12.02 |
---|---|
[MONGODB] MongoDB를 / 몽구스 :없는 경우는 null 독특한 (0) | 2019.12.02 |
[MONGODB] 어떻게 MongoDB의 모든 문서에 대한 필드 이름을 바꿀 수 있습니다? (0) | 2019.12.02 |
[MONGODB] 어떻게 쉘 스크립트를 통해 몽고 명령을 실행합니다? (0) | 2019.12.02 |
[MONGODB] MongoDB의 컬렉션 모든 문서에 새 필드를 추가 (0) | 2019.12.02 |