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

同じフィールド値と有効期限が切れていないドキュメントに基づいてドキュメントをフェッチするMongoクエリ

    以下のクエリは問題を解決します...$unwindを使用して配列を個々のフィールドに分割し、$groupがsharedWithで機能するようにします

    db.getCollection('sharing').aggregate([
      { 
        $match: { "expiryTime":{"$gte": ISODate()}  } 
      },
      { $unwind: "$sharedWith"},
      { $group: { 
           // Group by fields to match on sharedWith
           _id: "$sharedWith",
    
           // Count number of matching docs for the group
           count: { $sum:  1 },
    
           // Save the _id for matching docs
           docs: { $push: "$_id" }
        }},
        // Limit results to duplicates (more than 1 match) 
        { $match: {
            count: { $gt : 1 }
        }}
    ]);
    
    
    



    1. MongoDBでの参照と埋め込み

    2. mongoose.jsクエリを同期的に実行する

    3. MongoDBは、変数値で名前が付けられた新しいフィールドを追加します

    4. サブドキュメントの複数のフィールドに対するMongoクエリ