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

MongoDBで同様の配列をクエリします

    私を助けようとしたすべての人に感謝します。よろしくお願いします。

    集約パイプラインを介して解決策を見つけました。

    var myArray = ['a', 'b', 'c'];
    
    db.test.aggregate([
        {
            $unwind: '$chars',
        },
        {
            $match: { chars: { $in: myArray } },
        },
        {
            $group: {
                _id: '$_id',
                count: { $sum: 1 },
            },
        },
        {
            $project: {
                _id: 1,
                count: 1,
                score: { $divide: ['$count', myArray.length] },
            },
        },
        {
            $sort: { score: -1 },
        },
    ]);
    

    これがコンソールから返されるものです:

    { "_id" : ObjectId("586ebeacb2ec9fc7fef5ce31"), "count" : 3, "score" : 1 }
    { "_id" : ObjectId("586ebeb9b2ec9fc7fef5ce32"), "count" : 2, "score" : 0.6666666666666666 }
    { "_id" : ObjectId("586ebe89b2ec9fc7fef5ce2f"), "count" : 1, "score" : 0.3333333333333333 }
    

    誰かがこれが役に立つと思ってくれることを願っています。




    1. mongodbなしで_id文字列のようなmongodbを作成する方法はありますか?

    2. MongoDBAggregateを使用して2つのアレイ間の内積を計算します

    3. マングースは別のフィールドにベースを配置します動的参照

    4. マングースでジオロケーションを作成して検索