jquery - 在 MongoDB 中使用 Match exp 和 objectId
问题描述
我正在创建一个带有变量的查询以添加一个键并对应于我需要检查提到的 id 是否等于所有者 id 的键。我将此代码与名称一起使用,它工作正常,但对于对象 ID,我遇到了错误。我尝试了 toObjectId 函数,但它在 MongoDB 中无法识别。在这种情况下如何使用匹配功能?我应该在哪里添加“$oid”功能或其他可以提供帮助的东西?
{"collection": "Sample",
"aggregate": [
{"$addFields" : {"Key" : {{ Key }} }},
{"$project": {"owner": "$owner",
"check": {"$switch": {"branches": [{"case": {"$eq": ["$Key",556312]},"then": "5efaefc277fabb0d0f7039ab"},
{"case": {"$eq": ["$Key",844012]},"then": "5e046b55d1fe060d020f51ac"}
]}}}},
{"$oid": "check"},
{"$match" :{"$expr" : {"$eq" :["$owner", "$check"]}}}
]}
解决方案
从您的驱动程序导入对象 ID
ObjectId = require('mongodb').ObjectID;
并且像这样使用它,因为您的 id 是硬编码的:
ObjectId("5efaefc277fabb0d0f7039ab")
推荐阅读
- r - 在 R 中,如何使用第二个元数据文件将标签值分解并添加到特定的 data.table 列?
- python - AttributeError:模块“pages.views”没有属性“home_view”
- r - 在r中动态重绘绘图
- javascript - 如何通过get.ElementByTag()修改所有同类型元素
- powershell - 通过 powershell 启用基本身份验证的功能
- ruby-on-rails - 如何测试 Sidekiq 工作人员是否将正确的数据发送到外部 API?
- reactjs - Material-UI - 如何将自定义 Snackbar 的过渡更改为 Slide
- julia - Julia 的 `hash()` 函数是否保证跨会话、平台和版本具有稳定的输出?
- typescript - Jasmine 在测试另一个类时替换类
- google-apps-script - 来自 2 个单独表格的 2 个动态下拉列表的 Google Apps 脚本