首页 > 解决方案 > 有没有办法在插入后立即返回文档?

问题描述

我目前正在尝试返回我刚刚添加到集合中的文档,以便在我的主页上实时显示它。

我遵循了在这里找到的解决方案:link to 2018 solution。但是这个解决方案似乎不适用于最新的 node.js 和 MongoDb 版本。

我本质上是在尝试做与该帖子中的人尝试做的事情相同的事情,但出现以下错误:

res.json (info.ops[0]);
TypeError: Cannot read property '0' of undefined

这是我的代码供参考:

app.post('create-item', (req, res) => {
dB.collection('items').insertOne({text: req.body.text}, (err, info) => {
res.json(info.ops[0]);});});

标签: node.jsmongodb

解决方案


当我们使用insertOneNodejs 驱动程序 4(最新)时,我们会得到类似的响应
{"acknowledged" : true, "insertedId" : #object[ObjectId 61105622b633ecabf3706782]}

在插入之前将文档保存到变量中。
如果文档有_id,检查它是否被插入并从变量中获取文档。
如果文档没有_id,请检查它是否已插入并_id从响应中获取也 ,并将其添加_id到变量中的文档中。

也许我错过了一些东西,但如果这是你需要的,上面的操作很简单。


推荐阅读