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

MongoDBは、CurrentDateとのクエリ比較を検索します

    あなたの質問によると、mongodbコレクションから当日のドキュメントを取得したい 。 mongoDBシェルでnew Date()と入力すると 現在の日付と時刻が表示され、同じnew Date()を実行するとこの値は常に変化します おそらくこのようなクエリ:

    db.collectionName.find({"start_date":new Date()}).pretty()
    

    ただし、このクエリは、コレクションに表示されるが現在のDateと同じドキュメントを返すと思います。 ドキュメントに値が含まれていない可能性があるため、この場合は次のように使用する必要があります

    db.collectionName.find({"start_date":{"$lte":new Date()}}).pretty()
    

    または

    db.collectionName.find({"start_date":{"$gte":new Date()}}).pretty()
    

    場合によっては、year,month,dayと完全に一致するものを見つけたい場合 次に、集計 を使用する必要があります $ year、$ month、$ dayOfMonth in $ project このように:

    db.collectionName.aggregate({
      "$project": {
        "year": {
          "$year": "$date"
        },
        "month": {
          "$month": "$date"
        },
        "day": {
          "$dayOfMonth": "$date"
        }
      }
    }, {
      "$match": {
        "year": new Date().getFullYear(),
        "month": new Date().getMonth() + 1, //because January starts with 0
        "day": new Date().getDate()
      }
    })
    

    上記の集計クエリでは、year,month,dayなどの現在の日付に一致するドキュメントが返されます。 現在の日付の。また、$matchを置き換えます として

    var currentDate = new Date()
    
     {
      "$match": {
        "year": currentDate.getFullYear(),
        "month": currentDate.getMonth() + 1, //because January starts with 0
        "day": currentDate.getDate()
      }
    }
    


    1. Node / ExpressのMongoDBの例との間のAJAX呼び出し?

    2. mongoDB構文の記述

    3. マングースの状態に基づいてモデルの明確なフィールドを見つける方法は?

    4. MongoError:ECONNREFUSED127.0.0.1:27017に接続します