다음 클래스와 샘플 문서가 주어지면 공식 C# 드라이버를 사용하여 AnswerChoice의 _id가 '4d6d336ae0f84c23bc1fae00'인 Question 컬렉션에서 AnswerChoice 문서를 검색하는 방법은 무엇입니까? 고맙습니다.MongoDB 용 공식 C# 드라이버를 사용하여 모든 포함 된 문서 값을 검색하는 방법은 무엇입니까?
public class Question
{
[BsonId]
public ObjectId QuestionId
{get;set;}
public string Question
{get;set;}
public List<AnswerChoice> AnswerChoices
{get;set;}
}
public class AnswerChoice
{
[BsonId]
public ObjectId AnswerChoiceId
{get;set;}
public string Answer
{get;set;}
public int Order
{get;set;}
}
// 샘플 문서
{
"_id": "4d6d3369e0f84c23bc1facf7",
"Question": "Question 1",
"AnswerChoices": [
{
"_id": "4d6d3369e0f84c23bc1facf2",
"Answer": "Answer Choice A",
"Order": 1
},
{
"_id": "4d6d3369e0f84c23bc1facf3",
"Answer": "Answer Choice B",
"Order": 2
},
{
"_id": "4d6d3369e0f84c23bc1facf4",
"Answer": "Answer Choice C",
"Order": 3
},
{
"_id": "4d6d3369e0f84c23bc1facf5",
"Answer": "Answer Choice D",
"Order": 4
},
{
"_id": "4d6d3369e0f84c23bc1facf6",
"Answer": "Answer Choice E",
"Order": 5
}
}
// 코드 "4d6d336ae0f84c23bc1fae00는"
List<Question> list = new List<Question>();
MongoServer _server = MongoServer.Create("mongodb://localhost");
MongoDatabase _database = _server.GetDatabase("test");
var query = Query.And(Query.EQ("AnswerChoices._id", new ObjectId("4d6d336ae0f84c23bc1fae00")));
MongoCollection<Question> collection = _database.GetCollection<Question>("Question");
MongoCursor<Question> cursor = collection.Find(query);
foreach (var q in cursor)
{
list.Add(q);
}
가 어떻게 함께 AnswerChoice 개체를 검색 할 // _id의와 AnswerChoice이 그 질문을 검색 할 "4d6d336ae0f84c23bc1fae00"의 _id
linq를 사용하지 않고 직접 할 수있는 방법이 있습니까? 당신의 방법이 내가 필요한 것에 효과가 있다고 생각합니다. 나는 단지 궁금하다. 고맙습니다! – atbebtg
@atbebtg : 답변으로 foreach를 사용하십시오. –