sql >> データベース >  >> NoSQL >> MongoDB

MongoDBの公式C#ドライバーを使用してすべての埋め込みドキュメント値を取得するにはどうすればよいですか?

    (上記のコードのように)質問をロードし、linqまたはforeachを使用して、指定された_idを持つ回答アイテムを取得する必要があります。したがって、コードは次のようになります。

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

    また、Findの代わりにFindOneメソッドを使用することをお勧めします(上記で指定した_idを持つ回答が1つだけ存在することを確認しているため)。



    1. Rails:暗号化されたデータをデータベースに保存する

    2. Mongo-go-driverエラー新しいクライアントエラーmongo.NewClientの引数にClientOptionsがあります

    3. ELBエンドポイントをDNSとして持つmongodbクラスター

    4. MongoDB、java.lang.NoSuchFieldError