我有一个集合Trips
,我希望能够将乘客添加到乘客阵列或与乘客一起创建一个阵列。此SO answer提到$push
,但即使节点日志reserved seat on the trip
和前端有Your seat has been reserved
警报,集合也不会更新(Trips中没有乘客阵列)集合)。
//reserve a seat for a trip
app.post('/api/trips/:trip/:passenger',function(req,res){
console.log('trip:'+req.params.trip)
console.log('passenger:'+req.params.passenger)
db.collection('Trips').update({'_id':req.params.trip},{ $push: { "passengers": req.params.passenger }},function(err,res){
if(err) throw err
console.log('reserved seat on the trip')
})
res.send('Your seat has been reserved')
})
Mongo 3.2.11
节点9.4.0
Express 4.15.5
我的MongoDB调用有问题吗?我错过了一步吗?
答案 0 :(得分:1)
根据@Veeram评论,您需要传递正确的类型,在本例中为[
{ $match: { ... } },
{ $sort: { name:-1, price: -1 } },
{ $skip: x },
{ $limit: x + 20 }
]
。
正确的代码如下:
ObjectId
答案 1 :(得分:0)
目前我正在开发一个涉及node.js和mongodb的项目。 到目前为止,我发现从数据库发布/获取数据的最佳方法是使用mongoose。
这是我的server.js文件的后期部分。
app.post('/description', (req, res) => {
var DescriptionModel = new descriptionModel({
header: req.body.header,
header_image: req.body.header_image,
sub_heading: req.body.sub_heading,
sub_heading_tagline: req.body.sub_heading_tagline,
sub_heading_image_path: req.body.sub_heading_image_path,
sub_heading_data: req.body.sub_heading_data,
paralax_image_heading: req.body.paralax_image_heading,
paralax_image_tagline: req.body.paralax_image_tagline,
gallary_heading: req.body.gallary_heading,
gallary_tagline: req.body.gallary_tagline,
gallary_image_path: req.body.gallary_image_path
});
DescriptionModel.save().then((doc) => {
res.send(doc);
}, (e) => {
res.status(400).send(e);
})
});
我从html后的主体中获取数据,您可以直接输入您的数据。
我创建了一个已导入的模式文件。
如果您需要更多帮助,请在评论中提问,我将很乐意更详细地解释。