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. MongoDb:クエリ内の2つの配列から共通の要素を検索します

    2. エクスプレスポストリクエストでのUnhandledPromiseRejectionWarningの解決

    3. 配列フィールドでサブドキュメントを並べ替える方法は?

    4. MongoDBからDynamoDBへ