我想知道是否有办法搜索除空格之外的MongoDB数据。我的MongoDB有像 -
这样的数据
"Element":"Ele1"
"Element":"Ele2"
"Element":"Ele 3"

我的搜索查询包含不包含空格的字符串,即#34; 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中创建一个额外的字段,它可以节省没有空间的元素值。所以我可以从那里进行检查。感谢
答案 0 :(得分:1)
您可以通过创建不带空格的额外字段来获得最佳性能,但是在MongoDB中,您可以使用$regex来匹配包含和不包含空格的两个字段。
Aaaaaaa1
Bbbbbbb1
Aaaaaaa2
Bbbbbbb2
Aaaaaaa3
Bbbbbbb3
其中db.collection.find({ "Element": { $regex: /Ele\s*3/ } })
是空格,\s
表示零或更多出现。您预测的空间越多,您应该考虑添加一个没有任何空格的字段(因为性能),但*
仍将适用于此情况。