2017-01-21 2 views
0

Я новичок в MongoDB, то, что я хотел бы сделать, находится под адресом свойства. Я хотел бы сохранить имя и возраст человека, это может быть один человек за собственность или более одного, поэтому я пытаюсь с первым именем, но я получаю ошибку.MongoDB Bson создание в C#

Json

{ 
    "property": "This is property address", 
    "address1": "address 1", 
    "address2": "address 2", 
    "city": "city name", 
    "people": [ 
     "Person 1", 
     "Person 2", 
     "Person 3", 
     "Person 4" 
    ] 
} 

C# код

List<string> names = new List<string>(); 
names.Add("person 1"); 
names.Add("person 2"); 
names.Add("person 3"); 
names.Add("person 4"); 

var document = new BsonDocument { 

    {"property", "10" }, 
    {"address", "this is address 1" }, 
    {"city", "city name" }, 
    {"Family Members", new BsonArray { 
     new BsonDocument { {"name", names.ToBsonDocument() } } 
     } } 
    }; 

, но я получаю ниже ошибки

Значение массива не может быть записан на корневом уровне в BSON документа.

с нетерпением ждем вас.

+0

спасибо veeram и приносит извинение за форматирование – bigbapu

+0

если я изменить мой C# кода вара документа = новый BsonDocument { {"property", "10"}, {"адрес", "это адрес 1"}, {"город", "название города"}, {«Члены семьи», новый BsonArray { новый BsonDocument {{"name", "Person1"}, {"age", 33}}, новый BsonDocument {{"name", "Person2"}, {"age" , 63}}, новый BsonDocument {{"name", "Person3"}, {"age", 23}} }} }; он работает, но когда я пытаюсь использовать список, я получаю ошибку – bigbapu

ответ

0

AFAIK, вы жулик использовать BsonArray(IEnumerable<string> strings) конструктор так:

var names = new[] 
{ 
    "Person 1", 
    "Person 2", 
    "Person 3", 
    "Person 4" 
}; 

var document = new BsonDocument 
{ 
    {"property", "10"}, 
    {"address", "this is address 1"}, 
    {"city", "city name"}, 
    {"Family Members", new BsonArray(names)} 
}; 

Это результат:

{ 
    { 
     "property" : "10", 
     "address" : "this is address 1", 
     "city" : "city name", 
     "Family Members" : ["Person 1", "Person 2", "Person 3", "Person 4"] 
    } 
} 
Смежные вопросы