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

MongoDBで条件付きのネストされたドキュメントを削除します

    問題は、サブドキュメントの配列がコレクションではなく、並べ替えたり、他のことを実行したりできないことです。ただし、JavaScriptなどの言語インターフェイスにアクセスできる場合は、それが可能です。サブドキュメントのリストを抽出し、高さで並べ替え、最初のサブドキュメントを覚えてから、コマンドを実行して、名前と高さに基づいて配列からプルする必要があります。たとえば、MongoDBでこのJavaScriptコードを使用して実行できます。シェル:

    var min = 0; var name = "";
    db.animals.find({ query:{"_id" : 0} }).forEach(
    function(record){
        var sets = record.pets; 
        min = sets[0].height;
        sets.forEach(function(set){
            if(set.height <= min) 
                {min=set.height;
                name=set.name;}
                });
        print(min);
        print(name);    
        query = {"_id": 0}
        update = { "$pull" : { "pets" : { "name" : name } } };
        db.animals.update(query, update);
        })
    

    このソリューションは最もエレガントではないと思いますが、とにかく機能します。




    1. mongoid / mongodbを使用した、データモデルの抽出、モデリング、変更

    2. IDを含むMongodbコレクション内のすべてのオブジェクトを取得するにはどうすればよいですか?

    3. SpringData-集計方法のMongoDbオプション

    4. Parse.comはJSONオブジェクトをJSON配列に追加します