mongodb - 如何在 mongodb 中找到任何子字段?
问题描述
所以我有一组看起来像这样的文档:
{
"slug": {
"fr-FR": "test-1",
"nl-NL": "test-2",
"en-US": "test-3"
}
}
在我的应用程序中,我需要检查是否有任何文档使用了 slug(每个 slug 必须是全局唯一的,不仅在其语言环境中)。目前我需要做一个像这样的大请求:
.findOne({
$or: [
{ "slug.fr-FR": "test-1" },
{ "slug.nl-NL": "test-1" },
{ "slug.en-US": "test-1" }
]
})
所以我想知道是否有任何解决方案可以使用通配符缩短此查询。
我希望这一切对你有意义!
谢谢
解决方案
使用 Javascript function() 您可以避免单独的匹配语句:
db.collection.find(function(){
for ( var k in this.slug ) {
if ( this.slug[k] == "test-1" )
return true;
}
})
推荐阅读
- ios - 类似于折线图的 Swift 动画
- ios - 代码没有在 ForEach 语句中迭代
- javascript - 创建反应应用程序错误:找不到模块'./locale'
- javascript - 仅在 firebase 函数中为某些用户代理调用云函数
- python - 如何使用硒慢慢滚动到页面的末尾,以便我可以获得动态加载的内容
- javascript - 如何用javascript中的条件替换字符串
- html - 使用 HTML 将单个页面重定向到另一个页面
- reactjs - 状态组件的功能组件
- kubernetes - 大使边缘堆栈主机未生成 ACME 证书
- javascript - 在 REACT 中构建网格视图