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

mongoDBでのネストされたオブジェクトのテキスト検索

    集約フレームワークを使用すると、次のようになります

    db.getCollection('yourCollection').aggregate([
        {
            $unwind: '$arr'
        },
        {
            $match: {
                $or: [
                    { 'arr.name': /world/i },
                    { 'arr.description': /world/i }
                ]
            }
        },
        {
            $project: {
                _id: '$arr._id',
                name: '$arr.name',
                description: '$arr.description'
            }
        }
    ])
    

    これにより、サンプルデータに対して次の出力が生成されます。

    {
        "_id" : 1,
        "name" : "Random",
        "description" : "Hello world"
    }
    {
        "_id" : 2,
        "name" : "World",
        "description" : "This is a random description"
    }  
    

    質問に示されているように、結果のドキュメントを含む単一の配列が必要な場合は、toArray()をチェーンするだけです。 パイプラインの最後で呼び出す- SSDMS コメントで。




    1. xargs変数でsedを使用すると、シェル拡張内で機能しません

    2. MongoDB集計を使用して、同じドキュメント内の2つのセットのセット交差を検索します

    3. mongodbは、埋め込まれたドキュメントの_idフィールドにインデックスを自動的に作成しますか?

    4. 真のユニークなブール値を持つマングース