【问题标题】:Adding new item to the start of MongoDB database with Express使用 Express 将新项目添加到 MongoDB 数据库的开头
【发布时间】:2021-04-05 00:10:30
【问题描述】:

我有一个存储项目列表的 mongoDB 数据库:

[{"_id":"0", "a": "b"}, {"_id":"1", "a": "c"}]

要通过 POST 请求向数据库添加新项目,我使用的是 Express 路由器和 Mongoose:

router.post('/', (req, res) => {
    const newItem = new Item({a: req.body.a})
    newItem.save()
    .then(item => res.json(item))
})

在此之后,数据库如下所示:

[{"_id":"0", a: "b"}, {"_id":"1", a: "c"}, {new item}]

有什么办法可以代替将新项目添加到前面,像这样?

[{new item}, {"_id":"0", "a": "b"}, {"_id":"1", "a": "c"}]

感谢任何想法。

【问题讨论】:

  • newItem.save().then(items => res.json(items))这不是返回的项目列表,你能分享查找项目的代码。
  • @RahulSharma 正确,该行实际上应该是 .then(item => res.json(item)) (添加项目后,我返回响应中添加的项目)。无论哪种方式,尽管默认情况下该项目仍然总是被添加到列表的末尾。有没有办法将它添加到开头?

标签: database mongodb api express mongoose


【解决方案1】:

如果你使用猫鼬

Item.find({},(err,data)=>{
   if(err){
     res.send(err);
     console.log(err);
   }
   else{
     res.send(data);
   }
})```
this is the way to fetch all data from collection using mongoose.

【讨论】:

  • 谢谢。我正在使用 Mongoose,获取所有数据都没有问题,我想知道是否可以通过 POST 请求将新项目添加到集合列表的开头而不是结尾。
猜你喜欢
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多