使用 Express 将新项目添加到 MongoDB 数据库的开头

Posted

技术标签:

【中文标题】使用 Express 将新项目添加到 MongoDB 数据库的开头【英文标题】:Adding new item to the start of MongoDB database with Express 【发布时间】: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)) (添加项目后,我返回响应中添加的项目)。无论哪种方式,尽管默认情况下该项目仍然总是被添加到列表的末尾。有没有办法将它添加到开头? 【参考方案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 请求将新项目添加到集合列表的开头而不是结尾。

以上是关于使用 Express 将新项目添加到 MongoDB 数据库的开头的主要内容,如果未能解决你的问题,请参考以下文章

将 socket.io 添加到现有的 Express 项目(前面有 React)

将 nguniversal/express-engine 添加到 Angular 项目:“在 /src/app/app.module.ts 中找不到 BrowserModule 导入”

Mongo基础使用,以及在Express项目中使用Mongoose

如何在我添加到项目中的 SQL Server Express 数据库中创建用户?

将 https 添加到 webpack 代理的 graphql express 端点

Nodemon 不使用 express 开发新项目