mongodb C #: запросить значение нетипизированного вложенного документа - PullRequest
0 голосов
/ 01 октября 2018

Вот пример BsonDocument в моей базе данных

{
    "employee": "A",
    "job history": [{
            "job name": "sales",
            "time": 2016
        },
        {
            "job name": "manager",
            "time": 2018,
            "location": [
                "NY",
                "OH"
            ]
        }
    ]
}

Если мне нужен простой запрос, такой как «имя сотрудника», я бы пошел так:

var query = collection.Find(new BsonDocument("employee", "{}")).ToList();

Теперь, если я хочу получить значение "location", что мне делать?

1 Ответ

0 голосов
/ 02 октября 2018

Вот пример для начала:

// search by employee field
var result = collection.Find("{ 'employee': 'A' }").ToList();
Console.WriteLine(result.First()["job history"].AsBsonArray[1].AsBsonDocument["location"]); // prints [NY, OH]

// search by location
result = collection.Find("{ 'job history.location': 'NY' }").ToList();
Console.WriteLine(result.First()["employee"]); // prints A
...