I have this mongoose pattern
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 });
and try to update the model by following these steps:
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); }); });
I do not declare messages to take an array of objects?
ERROR: MongoError: you cannot use the $ push / $ pushAll modifier for a non-array
Any ideas?
mongodb mongoose
user1460015 Mar 25 '13 at 18:21 2013-03-25 18:21
source share