node.js - 有没有办法在插入后立即返回文档?
问题描述
我目前正在尝试返回我刚刚添加到集合中的文档,以便在我的主页上实时显示它。
我遵循了在这里找到的解决方案: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]);});});
解决方案
当我们使用insertOne
Nodejs 驱动程序 4(最新)时,我们会得到类似的响应
{"acknowledged" : true, "insertedId" : #object[ObjectId 61105622b633ecabf3706782]}
在插入之前将文档保存到变量中。
如果文档有_id
,检查它是否被插入并从变量中获取文档。
如果文档没有_id
,请检查它是否已插入并_id
从响应中获取也 ,并将其添加_id
到变量中的文档中。
也许我错过了一些东西,但如果这是你需要的,上面的操作很简单。
推荐阅读
- assembly - Is there a website or tool for parsing, breaking down, and explaining x86 bytecode
- php - ssh2_connect(): 启动 SSH 连接时出错 (-43): 获取横幅失败
- gradle - Gradle 分发插件:有条件地复制资产
- c# - XAML + Awesome:更改触发器样式
- python - Python3 simplejson异常
- python - 错误:不再支持将列表喜欢传递给带有任何缺失标签的 .loc 或 []
- laravel - 无法使用 scout elasticsearch laravel 从 laravel 应用程序创建索引 aws elasticsearch
- laravel - Laravel Socialite Google Signin 不适用于个人资料范围
- django - Django 消息变量在 If.. 语句中不可用
- reactjs - Typescript - 如何使用现有属性扩展接口?