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

C#を使用してマルチレベルの埋め込み/ネストされたMongoDBドキュメントを取得および追加/更新します

    ドキュメント による :

    したがって、-1を使用します ここでは前進する方法ではありません。採用する必要のあるアプローチは、$位置フィルター処理された演算子

    C#には強く型付けされた表現がないため、コードは次のようになります。

    var filter = Builders<Channel>.Filter.Eq(x => x.Id, "5e4606e6ae7b090688671416");
    
    var like = new Like() {Name = "new like", Id = "1"};
    var episodeId = "5e46071d385a672b0cea0f86";
    var trackId = "5e460dbe2bc5e70c9cfeac21";
    
    var update = Builders<Channel>.Update.Push("Episodes.$[e].Tracks.$[t].Likes", like);
    
    var arrayFilters = new List<ArrayFilterDefinition>();
    ArrayFilterDefinition<BsonDocument> episodesFilter = new BsonDocument("e._id", new BsonDocument("$eq", episodeId));
    ArrayFilterDefinition<BsonDocument> tracksFilter = new BsonDocument("t._id", new BsonDocument("$eq", trackId));
    arrayFilters.Add(episodesFilter);
    arrayFilters.Add(tracksFilter);
    
    var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };
    
    var result = mongoDBCollection.UpdateOne(filter, update, updateOptions);
    



    1. SpringBootがMongoDBリポジトリをセットアップする

    2. 数十億のレコードを集約するときに開いているファイルのエラーが多すぎる場合の修正方法

    3. セロリ労働者が一生懸命死んだ場合、仕事は再試行されますか?

    4. 特定のキーに基づいてMongoDBで最大値と最小値を取得するにはどうすればよいですか?