javascript - 无法使用赛普拉斯查询 MongoDB 的 ObjectId
问题描述
我正在尝试执行以下查询
db.getCollection('name').find({_id : ObjectId("hereGoesAnId")})
我正在使用 mongodb 模块并使用 cy.task 每次查询数据库。这工作正常。事实上,如果我将 id 更改为另一个要查询的属性,它会像一个魅力一样工作。问题是我只能通过这个 id 来识别任务,而 ObjectId 是给我带来问题的那个。
如果我尝试以这种方式发送查询:
const result = await.collection.find({_id: `ObjectId(${varName})`}).toArray()
结果为空,因为它将 ObjectId 解释为字符串并且没有找到任何内容。
但是,如果我这样做:
const result = await.collection.find({_id: ObjectId(`${varName}`)}).toArray()
我收到一条错误消息,提示“未定义 ObjectId ...
我是 mongo 的新手,我不确定是否有解决方法?
解决方案
在您的代码顶部添加以下内容:
const { ObjectId } = require('mongodb');
推荐阅读
- c# - 如何在外部库中访问 ASP.NET WebAPI 中的依赖关系解析器
- mongodb - Heroku 推送被拒绝失败:npm ERR!404 未找到:事件流@3.3.6。这会导致构建失败
- rails-activestorage - 如何使用 expiring_url 将回形针迁移到活动存储?
- javascript - 使用按钮在带有 chart.js 的图表之间切换
- r - 我正在尝试从每日数据中获取季节性融化信息。不能按季节汇总
- javascript - 使用 jQuery 验证 Vtiger CRM 6.2 字段(自定义模块)
- python - 将 bash 变量传递给 python 命令
- apache-kafka - Kafka KStream-KTable 加入竞争条件
- python-3.x - 如何在 RESTful Flask/SQLAlchemy/Marshmallow 环境中读取 GET 请求的参数
- c - SDCC / GBDK,将结构数组传递给函数