sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur hämtar man alla inbäddade dokumentvärden med den officiella C#-drivrutinen för MongoDB?

Du bör ladda frågan (som i koden ovan) och använda linq eller foreach för att få svarsobjekt med specificerat _id. Så koden kommer att se ut så här:

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

Jag föreslår också att istället för Hitta använd FindOne-metoden (eftersom jag antar att du är säker på att det bara finns ett svar med ovan angivna _id).



  1. MongoDb upsert undantag ogiltigt BSON-fält

  2. hitta i BSON-dokument med MongoDB C++-drivrutinen

  3. Spark och MongoDB-applikation i Scala 2.10 maven byggt fel

  4. Vad är nytt i MongoDB 4.4