Вероятно, это отдельный вопрос, но по какой-то причине этот поиск может занять до 24 секунд для набора документов из 100 000. Я пытался добавить различные индексы, но безрезультатно; любые указатели в этом отношении были бы невероятны.
ользую 10Gen санкционированный драйвер C # для mongoDB для приложения C # и для просмотра данных, я использую Mongovue.
Вот две примеры схем документов:
{
"_id": {
"$oid": "4ded270ab29e220de8935c7b"
},
"Relationships": [
{
"RelationshipType": "Person",
"Attributes": {
"FirstName": "Travis",
"LastName": "Stafford"
}
},
{
"RelationshipType": "Student",
"Attributes": {
"GradMonth": "",
"GradYear": "",
"Institution": "Test1",
}
},
{
"RelationshipType": "Staff",
"Attributes": {
"Department": "LIS",
"OfficeNumber": "12",
"Institution": "Test2",
}
}
]
},
{
"_id": {
"$oid": "747ecc1dc1a79abf6f37fe8a"
},
"Relationships": [
{
"RelationshipType": "Person",
"Attributes": {
"FirstName": "John",
"LastName": "Doe"
}
},
{
"RelationshipType": "Staff",
"Attributes": {
"Department": "Dining",
"OfficeNumber": "1",
"Institution": "Test2",
}
}
]
}
Мне нужен запрос, который гарантирует, что оба критерия $ elemMatch удовлетворены, чтобы я мог сопоставить первый документ, но не второй. Следующий запрос работает в Mongovue.
{
'Relationships': { $all: [
{$elemMatch: {'RelationshipType':'Student', 'Attributes.Institution': 'Test1'}},
{$elemMatch: {'RelationshipType':'Staff', 'Attributes.Institution': 'Test2'}}
]}
}
Как я могу сделать тот же запрос в моем коде C #?