MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy można porównać ciągi dat w mongodb?

Jeśli chcesz wybrać rekordy, użyj zakresu dat:

db.collection.find({
    created: { "$gte": new Date("2013-05-27"), "$lt": new Date("2013-05-28") }
})

I to wybiera wszystkie zawarte godziny, minuty itp., mieszczące się między tymi dwiema datami.

Więc powinieneś staraj się używać wartości dat, a nie zamieniać ich w ciągi.

Jeśli chcesz to zrobić w celu agregacji lub w inny sposób potrzebujesz wyniki w formacie dziennym, a następnie zrób to za pomocą $project oraz data operatorzy :

db.collection.aggregate([
    // Still match on the normal date forms, this time whole month
    { "$match": {
        created: { 
           "$gte": new Date("2013-05-01"), 
           "$lt": new Date("2013-05-31") 
        }
    }},

    // Project the date
    { "$project": {
        "date": {
            "year"  : { "$year"  : "$created" },
            "month" : { "$month" : "$created" },
            "day":  : { "$dayOfMonth": "$created" }
        },
        "title": 1
    }},

    // Group on day and title
    { "$group": {
        "_id": {
            "date"  : "$date",
            "title" : "$title"
        },
        "count": { "$sum": 1 }
    }},

    // Sort by date
    { "$sort": { 
        "_id.date.year": 1,
        "_id.date.month": 1,
        "_id.date.day": 1,
    }},

    // Project nicer dates and document
    { "$project": {
        "_id": 0,
        "date": { "$concat": [
            { "$substr": [ "$_id.date.year", 0, 4 ] },
            "-",
            { "$substr": [ "$_id.date.month", 0, 2 ] },
            "-",
            { "$substr": [ "$_id.date.day", 0, 2 ] }
        ]},
        "title": "$_id.title",
        "count": 1
    }}
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizacja Sails.js do wersji v1 z uwzględnieniem odwrotnej wielkości liter

  2. Jak zaimplementować tagi postów w Mongo?

  3. Kiedy próbuję użyć Hibernate ogm i spring boot, konsola wyświetla komunikat o błędzie Nie można utworzyć wystąpienia nazwanej klasy strategii

  4. TypeError:UserSchema nie jest konstruktorem (Schema nie jest konstruktorem MongoDB)

  5. Meteor Mongo findOne zwraca niezdefiniowane w metodzie