sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo Query för att hämta dokument på basis av samma fältvärde och de som inte har förfallit

Frågan nedan löser problemet...$unwind används för att dela upp array i enskilda fält så att $group fungerar på 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. Hantera MongoDB kopplar ur/återansluter från Node

  2. Mongodb C#-drivrutin Ostödd filterfel med specifikt linq-predikat

  3. Varför får jag ett okänt argument till dateFromString:'format' trots att jag har db-version>3.6 som stöder aggregeringen

  4. Hur man projicerar/filtrerar inbäddade nycklar med att tillämpa regex på nyckel