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 내가 VAR 문서에 내 C# 코드를 변경하는 경우 형식화하는 – bigbapu

+0

에 대해 사과 않습니다 감사합니다 = 새로운 BsonDocument { { "property", "10"}, { "주소", "주소 1"}, { "도시", "도시 이름"}, 새로운 BsonDocument {{ "name", "Person2"}, { "age", { "age", 33}}, 새로운 BsonArray { , 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"] 
    } 
} 
관련 문제