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

Използвайте $gte и <e оператор mongo, ако датата е в низов формат в mongodb

Можете да опитате по-долу агрегиране в mongodb 3.6

Можете да използвате $dateFromString агрегиране, за да конвертирате вашия dob от низ до дата и след това лесно $count документите, прилагащи $match върху него.

1) Използване на агрегиране с $addFields

db.panelists.aggregate([
  { "$addFields": {
    "date": {
      "$dateFromString": { "dateString": "$dob", "format": "%m-%d-%Y" }
    } 
  }},
  { "$match": {
    "date": {
      "$gte": moment('08-02-1998').toDate(),
      "$lte": moment('08-02-2003').toDate()
    }
  }},
  { "$count": "count" }
])

2) Използване на проста заявка за намиране с $expr

db.collection.find({
  "$expr": {
    "$and": [
      {
        "$gte": [
          { "$dateFromString": { "dateString": "$dob", "format": "%m-%d-%Y" }},
          ISODate("2000-02-22T00:00:00Z")
        ]
      },
      {
        "$lte": [
          { "$dateFromString": { "dateString": "$dob", "format": "%m-%d-%Y" }},
          ISODate("2000-02-24T00:00:00Z")
        ]
      }
    ]
  }
})

3) Използване на агрегиране с $expr

db.collection.aggregate([
  { "$match": {
    "$expr": {
      "$and": [
        {
          "$gte": [
            { "$dateFromString": { "dateString": "$dob", "format": "%m-%d-%Y" }},
            ISODate("2000-02-22T00:00:00Z")
          ]
        },
        {
          "$lte": [
            { "$dateFromString": { "dateString": "$dob", "format": "%m-%d-%Y" }},
            ISODate("2000-02-24T00:00:00Z")
          ]
        }
      ]
    }
  }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се стартира MongoDB. ГРЕШКА:адресът вече се използва

  2. Търсене на стойност на всяко поле в MongoDB без изрично именуване

  3. Грешка в MongoDB:Не може да се използва повторно записване с limit=0

  4. Криптиране на MongoDB данни в покой

  5. Как да изпълня заявка за идентификационен масив в Mongoose?