【问题标题】:MongoDB search using text index not working c#使用文本索引的MongoDB搜索不起作用c#
【发布时间】:2021-10-13 21:03:41
【问题描述】:

我在我的收藏中添加了文本索引。我正在尝试使用带有一些附加过滤器的文本搜索来过滤数据。但它不适用于其他过滤器。

{$text:{$search:"test"},Type:"5"}

上面的查询从 mongoDB Atlas 中返回所有符合条件的 42 个条目。

但是当我从 c# 中执行此操作时,我认为我查询它是错误的。我在这里错过了什么。

 var collection = db.GetCollection<TestTbl>("TestTbl");
            var filter = Builders<TestTbl>.Filter.Text(searchtext)
            &Builders<TestTbl>.Filter.Eq("TypeID", TypeID);
var data = collection.Find(filter).ToList();

这里数据返回null。

当我只在过滤器中提供文本时,它可以正常工作。

{$text:{$search:"test"}}
var collection = db.GetCollection<TestTbl>("TestTbl");
                var filter = Builders<TestTbl>.Filter.Text(searchtext);
    var data = collection.Find(filter).ToList();

【问题讨论】:

  • 尝试使用 And 连接您的过滤器:var filter = Builders&lt;TestTbl&gt;.Filter.And(Builders&lt;TestTbl&gt;.Filter.Text(searchtext), Builders&lt;TestTbl&gt;.Filter.Eq("TypeID", TypeID))
  • 错误在于我的模型,它是 Guid 类型忘记提及字段表示的 bsontype 字符串。谢谢@Michael

标签: c# asp.net mongodb indexing query-builder


【解决方案1】:

错误在于我的模型,它是 Guid 类型忘记提及字段表示的 bsontype 字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 2018-09-27
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多