【发布时间】:2021-06-30 00:17:00
【问题描述】:
我在 MongoDB 中有如下文档 -
[
{
"_id": "17tegruebfjt73efdci342132",
"name": "Test User1",
"obj": "health=8,type=warrior",
},
{
"_id": "wefewfefh32j3h42kvci342132",
"name": "Test User2",
"obj": "health=6,type=magician",
}
.
.
]
我想运行一个查询说health>6,它应该返回"Test User1" 条目。 obj 键被索引为文本字段,因此我可以使用 {$text:{$search:"health=8"}} 来获得完全匹配,但我正在尝试将数学运算符合并到搜索中。
我知道$gt 和$lt 运算符,但是在这种情况下不能使用它,因为health 不是文档的键。最简单的方法是确定将health 设为文档的键,但由于某些限制,我无法更改文档结构。
有没有办法做到这一点?我知道 mongo 支持运行 javascript 代码,不确定在这种情况下是否有帮助。
【问题讨论】:
-
您可以尝试在聚合查询中转换数据,例如提取适当的子字符串并通过它们进行匹配/搜索(因为您已经提到更改数据设计不是一种选择)。但是,我认为这不会是一个非常有效的搜索。
标签: string mongodb search operators