sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo recuperar todo el valor del documento incrustado usando el controlador C# oficial para MongoDB?

Debe cargar la pregunta (como en el código anterior) y usar linq o foreach para obtener el elemento de respuesta con el _id especificado. Entonces el código se verá así:

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);

var id = new ObjectId("4d6d336ae0f84c23bc1fae00");
foreach (var q in cursor)
{
    var answerChoice = q.AnswerChoices.Single(x=> x.AnswerChoiceId == id);
    list.Add(q);
}

También sugiero que en lugar de Buscar use el método FindOne (porque supongo que está seguro de que solo existe una respuesta con el _id especificado anteriormente).