Гость
Map
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Embedded BsonDocument как извлеч в C# / 2 сообщений из 2, страница 1 из 1
07.11.2013, 11:04
    #38455683
Nawy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded BsonDocument как извлеч в C#
Создаю так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var collection = db.GetCollection<BsonDocument>("User");

BsonDocument dUser = new BsonDocument {
     {"fame", "Ivan"},
     {"lname", "Ermolaev"},
     {"access", new BsonDocument {
                    {"create", "yes"}
                    {"delete", "no"}
                    {"change", "no"}
     }
}

collection.Insert(dUser);



Хочу получить поля access.create, access.delete и access.change, но если извлекать так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
foreach (BsonDocument item in user_collection.Find(query))
{
                    BsonElement objId = item.GetElement("_id");
                    BsonElement bfname = item.GetElement("fname");
                    BsonElement blname = item.GetElement("type");
                    BsonElement bcreate = item.GetElement("object.create"); // тут ошибка
                    BsonElement bdelete = item.GetElement("object.delete"); // и тут
                    BsonElement bchange = item.GetElement("object.change"); // и тут само собой
}



Получаю ошибку.

Если так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
foreach (BsonDocument item in user_collection.Find(query))
{
                    BsonElement objId = item.GetElement("_id");
                    BsonElement bfname = item.GetElement("fname");
                    BsonElement blname = item.GetElement("type");
                    BsonElement baccess = item.GetElement("object");
}



В Получаю что то вроде:
access={create:"yes", delete:"no", change:"no"}
...
Рейтинг: 0 / 0
07.11.2013, 11:07
    #38455686
Nawy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Embedded BsonDocument как извлеч в C#
Извеняюсь, разобрался.
Я сделал так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
foreach (BsonDocument item in user_collection.Find(query))
{
                    BsonElement objId = item.GetElement("_id");
                    BsonElement bfname = item.GetElement("fname");
                    BsonElement blname = item.GetElement("type");
                    //извлекаю как документ, а не как элемент
                    BsonDocument baccess = item.GetElement("object"); 
                    //а тут извлекаю уже элементы из документа
                    BsonElement bcreate = baccess.GetElement("create");
                    BsonElement bdelete = baccess.GetElement("delete");
                    BsonElement bchange = baccess.GetElement("change");
}
...
Рейтинг: 0 / 0
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Embedded BsonDocument как извлеч в C# / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]