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

C#MongoDB-複数のネストされた配列要素にアイテムを追加および削除する方法は?

    3.6バージョンの2.5ドライバーで以下のようなものを試すことができます。

    filterでドキュメントを検索します 基準とupdate これには、新しい位置識別子 が含まれます UpdateOne内の配列内の複数の要素を更新します メソッド。

    $ [] すべてのTagsを更新します すべてのCategoriesに新しいアイテムを含める配列 配列。配列内のすべての要素を更新するためのプレースホルダーとして機能します。

    プッシュ

    var filter = Builders<Product>.Filter.Eq("Id", "123");
    var update = Builders<Product>.Update.Push("Tags.$[].Categories", "Item 3");
    var result = collection.UpdateOne(filter, update);
    

    引っ張る

    var filter = Builders<Product>.Filter.Eq("Id", "123");
    var update = Builders<Product>.Update.Pull("Tags.$[].Categories", "Item 3");
    var result = collection.UpdateOne(filter, update);
    

    追加情報:

    ArrayFiltersを設定できます UpdateOptionsのオプション ネストされた配列にクエリ条件を適用して、更新する要素を制御します。

    たとえば、各タグにNameがあるTags配列のすべてのCategoriesを更新します 名前。

    var filter = Builders<Product>.Filter.Eq("Id", "123");
    var update = Builders<Product>.Update.Push("Tags.$[t].Categories", "Item 3");
    var arrayFilters = new List<ArrayFilterDefinition>{ new ArrayFilterDefinition(new BsonDocument("t.Name", "name")) };
    var updateOptions = new UpdateOptions({ArrayFilters = arrayFilters});
    var result = collection.UpdateOne(filter, update, updateOptions);
    



    1. 例外:BSONObjサイズ:-286331154(0xEEEEEEEE)が無効です。サイズは0から16793600(16MB)の間でなければなりません

    2. NotSerializableException org.neo4j.kernel.EmbeddedGraphDatabase

    3. MongoDBでデータベースをコピー/クローン化する

    4. 反応でbase64画像を表示するにはどうすればよいですか?