У меня есть коллекция монго с составным идентификатором, содержащим документы, которые выглядят примерно так:
{
"_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.