使用 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 数据库中创建用户?