을 사용하여 mongodb의 중첩 배열에서 특정 필드를 선택하십시오. 내 응용 프로그램이 .net C# 드라이버를 사용하여 mongodb에 액세스합니다.C#
내 데이터 구조는 다음과 같습니다
{
"_id" : ObjectId("53d97351e37f520a342e152a"),
"Name" : "full question test 2",
"keywords" : ["personality", "extraversion", "agreeableness"],
"Questions" : [{
"type" : "likert",
"text" : "question 1",
},
{
"type" : "likert",
"text" : "question 2",
}]
}
내가하고 싶은 것은 질문의 배열 유형 만 열을 선택하는 것입니다.
여기 지금 내 LINQ 코드 :
from e in collection.AsQueryable<scales>()
where e.Name == "full question test 2"
select new { e.Id, e.Name, e.Questions}
이 모든 질문의 특성 (유형과 텍스트 모두)을 반환합니다. 나는 그저 그런 종류의 것을 원한다. e.Questions [0] .text, e.Questions [1] .text와 같은 것을 말하면됩니다.
그러나 질문의 수는 파일마다 다르므로이 수동 코딩이 필요없는 솔루션을 좋아합니다.
아이디어로 열기!
정말 있습니까? db.collection.find ({ "Name": "fullquestion test 2"}, { "Name": 1, "Questions.type": 1})'같은 결과를 반환합니다. 아니면 C# 일입니까? –
@JustinCase 자동 조종 장치에 두뇌. 단일 필드이므로 옳았고 표준 투영법은 단일 필드에서 작동해야합니다. 아직도 여러 분야에서 생각하고 있습니다. –
빠른 응답을 보내 주셔서 감사합니다! 불행히도 점 표기법 (id.Questions.type) doesnt 작동 :("System.Array에 'type'정의가 없습니다"라는 오류 메시지가 나타납니다. – AlexKogan