MongDB Запрос по массиву частичных составных ключей - PullRequest
0 голосов
/ 17 июня 2019

У меня есть коллекция монго с составным идентификатором, содержащим документы, которые выглядят примерно так:

{
    "_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

Некоторый контекст: выбор всех документов из монго и фильтрация в памяти с помощью linqЯ долго гоняюсь за производительностью, пытаясь перенести часть обработки в Mongo.

...