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

Mongo MapReduce изберете най-новата дата

Обмисляли ли сте да използвате някой от следните подходи?

Намерете MAX timeStampField в колекцията:

db.collectionName.ensureIndex( { "timeStampField": -1 } );
db.collectionName.find({},{"timeStampField":1}).sort({timeStampField:-1}).limit(1);

ИЛИ:

Намерете MAX timeStampField , на user_id в колекцията (ако DB не е шардинг):

db.collectionName.group(
  {  key: { "user_id" : 1 }
   , initial: { maxTimeStamp   : new Timestamp()  }
   , cond:    { timeStampField : {$exists : true}, timeStampField : {$gt: new Timestamp()} }
   , reduce:  function(doc,out) { 
                  if (out.maxTimeStamp < doc.timeStampField) { 
                      out.maxTimeStamp = doc.timeStampField; 
                  }
              }
  }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Уникален индекс на Mongoose на поддокумента

  2. Инсталирането на Mongodb е неуспешно с homebrew и Xcode 8.1.1

  3. Node.js + MongoDB:вмъкнете един и върнете нововмъкнатия документ

  4. Предаване на променливи в актуализации на mongo?

  5. Фатална грешка:Класът „MongoDate“ не е намерен при използване на mongodb php драйвер 1.1.2 и PHP 7.0.2 - Laravel 5.1