我想知道是否有一种方法可以搜索不包括空格的MongoDB数据。我的MongoDB有如下数据-
"Element":"Ele1"
"Element":"Ele2"
"Element":"Ele 3"
我的搜索查询包含不含空格的字符串,即"Ele1,Ele2,Ele3“。因此,当我向搜索查询传递"Ele3“时,它不会返回任何结果。我正在使用ElasticSearch.net nuget。我的代码是这样的-
var elResp = await data.MultiSearchAsync(m => m
.Query(q => q
.Nested(n => n
.Path("Element")
.Query(qq => qq
.Bool(b => b
.Must(m1 => m1
.Term("Element.keyword", "Ele1")))))))
有没有什么我可以做的,或者我必须在MongoDb中创建一个额外的字段来保存元素值而不留空格。这样我就可以从中执行检查了。谢谢
发布于 2018-01-08 05:58:02
您可以通过创建不带空格的额外字段来获得最佳性能,但是在MongoDB中,您可以只使用$regex来匹配带空格和不带空格的字段。
db.collection.find({ "Element": { $regex: /Ele\s*3/ } })其中,\s是一个空格,而*表示零个或多个匹配项。您预测的空间越多,您就越应该考虑添加一个不带任何空格的字段(出于性能考虑),但是/E\s*l\s*e\s*3/仍然适用于这种情况。
https://stackoverflow.com/questions/48140330
复制相似问题