【问题标题】:C# MongoDB SearchingC# MongoDB 搜索
【发布时间】:2013-12-30 21:45:09
【问题描述】:

是否可以跨 2 个不同的集合进行搜索。例如:

记录集合

 [{
     id: "1",
     name: "Henry"
     Values: [ "124", "243" ]
 }]

值集合

[{
    id: "124",
    Value: "Fox"
} ... ]

所以诸如“fox”之类的搜索查询会拉回“Henry”记录。

我知道你可以这样做:

var textSearchCommand = new CommandDocument
{
          { "text", records.Collection.Name },
          { "search", "fox" }
};

var commandResult = records.Collection.Database.RunCommand(textSearchCommand);
var response = commandResult.Response;

但这不会产生任何结果,因为记录集合不包含“狐狸”。

【问题讨论】:

  • 搜索两个集合的唯一方法是通过应用程序中的两个单独查询。
  • 或者,将您的文档存储在一个集合中。如果需要“键入”文档,请为类型映射包含一个简单字段并为其编制索引(如果需要,再次进行索引)。

标签: c# .net mongodb mongodb-.net-driver


【解决方案1】:

您只能对 MongoDB 中的单个集合执行查询。如果您需要 2 个集合,则需要 2 个查询。 MongoDB 是一个 NoSQL 数据库,其思维方式都是关于多个、短而快速的查询。在这种情况下,在您获得 Record 后,您就有了 Value 的 id,因此使用索引获取它应该很快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2012-03-26
    • 2012-07-02
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多