在mongo中插入数组不会发生?
我是MongoDb的新手,我有一个关于数据插入的问题。 我用于'用户'集合的mongoose模式:
var user = new mongoose.Schema({ username : {type: String}, email : {type: String,index: {unique: true}}, password : {type: String}, feed : [{ title : {type: String}, description : {type: String}, latitude : {type:Number}, longitude : {type:Number}, feedImages : [{ imageUrl: {type: String} }] }] });
我想插入数据到feedimages和我的服务是:
app.post('/uploadFeedImage',function(req,res) { var _id = req.body._id; var imageUrl = req.body.imageUrl; db.user.update( {"feed._id":_id }, {$push : { feedImages:{ imageUrl:imageUrl } } },function (err,result) { if (err) { res.json({"success": '0', "message": "Error adding data"}); } else { res.json({"success": '1', "message": "Data added"}); } }); });
但数据没有插入到表中,没有显示错误,我不知道是什么问题。
我的用户表如下所示:
使用$
推入数组的匹配元素。 即为哪个feed._id
匹配
尝试这个:
db.user.update( {"feed._id":_id }, {$push : { "feed.$.feedImages":{ imageUrl:imageUrl } } },function (err,result) { if (err) { res.json({"success": '0', "message": "Error adding data"}); } else { res.json({"success": '1', "message": "Data added"}); } });
编辑
$
是update positional operator
,它只帮助更新符合更新条件的元素。 欲了解更多信息,请参阅MongoDB $运营商文档。