MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongo Query за извличане на документи на базата на същата стойност на полето и тези, които не са с изтекъл срок

Заявката по-долу решава проблема...$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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Попълване само на определени полета в mongoose

  2. $concat поле с индекс в $map mongodb?

  3. Може ли $isolated да спре да чете променени документи в естествен ред при многократна актуализация?

  4. Рамката за агрегиране на MongoDB и Java драйверът правят $or условието да работи

  5. MongoDB $sum и $avg от поддокументи