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

Mongodb Aggregation:配列の一致する要素のみを返す方法

    これは、2.2集約フレームワークを使用して行うことができます。このようなもの;

    db.books.runCommand("aggregate", {
        pipeline: [
            {   // find docs that contain Par*
                $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
            },
            {   // create a doc with a single array elemm for each indexToken entry
                $unwind: "$indexTokens" 
            },
            {   // now produce a list of index tokens
                $group: {
                    _id: "$indexTokens",
                },
            },
        ],
    })
    

    または、ドキュメントなしでアレイが本当に必要な場合は、これが目的にさらに近い可能性があります。

    db.books.runCommand("aggregate", {
        pipeline: [
            {   // find docs that contain Par*
                $match: { "indexTokens" : { "$regex" : "^Par" , "$options" : "i"}},
            },
            {   // create a doc with a single array elemm for each indexToken entry
                $unwind: "$indexTokens" 
            },
            {   // now throw out any unwind's that DON'T contain Par*
                $match: { "indexTokens": { "$regex": "^Par", "$options": "i" } },
            },
            {   // now produce the list of index tokens
                $group: {
                    _id: null,
                    indexTokens: { $push: "$indexTokens" },
                },
            },
        ],
    })
    


    1. 100万レコードをmongodbに非同期で保存するにはどうすればよいですか?

    2. MeanJSを使用したマングースフレンズプラグインのインストール

    3. mongodbは検索クエリで文字列として_idを取得します

    4. mongoDBにネストされたクエリ