通过部分组合键数组查询MongDB

时间:2019-06-17 17:37:16

标签: mongodb mongodb-.net-driver

我有一个mongo集合,其中包含一个包含类似于以下内容的文档的复合ID:

{
    "_id" : {
        "Id1" : NumberLong(123),
        "Id2" : NumberInt(45),
        "Guid1" : "Guid1"
        "Guid2" : "Guid2"
    },
    "Field1" : NumberInt(1),
    "Field2" : 0.0,
    "Field3" : "String value",
}

我想通过提供仅_Id.Id1和_Id.Id2对的列表从此集合中选择多个文档(数千个)。我不确定如何在MongoDB或.Net驱动程序中执行此操作,更不用说它了。

如果我的问题不清楚,我将尽我所能对其进行伪造:

class QueryCriteria
{
   Int64 Id1,
   Int Id2,
}

Public GetList(List<QueryCriteria> criteria)
{
   List<ResultModel> results = _collection.Find<ResultModel>(
      (x, criteria) => 
          x._id.Id1 == criteria.Id1 && 
          x._id.Id2 == criteria.Id2 )
}

SQL伪(如果SQL也具有使列成为整个对象的能力)

SELECT      Table1.*

FROM        Table1      T1

JOIN        Table2      T2
ON          T1._id.Id1 = T2.Id1
AND         T1._id.Id2 = T2.Id2

某些情况:从mongo中选择所有文档并使用linq进行内存过滤耗时很长,我在这里试图通过减少对Mongo的处理来追求性能。

0 个答案:

没有答案