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

集約フレームワークmongodbでの$unwindと$textの使用

    以下の答えはあなたの望む結果を返します。最初の$match catのないドキュメントをフィルタリングするためにのみ使用されます textの助けを借りて、その中に 索引。このステージを使用しない場合、結果は同じで正しいものになりますが、遅くなる可能性があります。

    db.pages.aggregate([
         {
             $match: {
                 $text: {
                     $search: "cat"
                 }
             } 
         },
         {
             $unwind: '$articles'
         },
         {
             $match: {
                 'articles.articleContent': /cat/
             }
         },
         {
             $group: {
                 _id: {
                     _id: '$_id',
                     pageNo: '$pageNo'
                 },
                 articles: {
                     $push: '$articles'
                 }
             }
         },
         {
             $project: {
                 _id: '$_id._id',
                 pageNo: '$_id.pageNo',
                 articles: 1
             }
         }
    ])
    



    1. MongoDB-エラー:保存する前にドキュメントに_idが必要です

    2. RedisTemplateの有効期限が機能しません

    3. --authenticationDatabaseadminなしでmongodbインスタンスに接続します

    4. マングーススキーマに配列を保存する