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

Преобразувайте ISO датата във формат гггг-мм-дд

Помислете за стартиране на тръбопровод за агрегиране, който ще ви позволи първо да изравните списъка с данни, да проектирате новото поле с помощта на $dateToString оператор, след което прегрупирайте сплесканите документи, за да получите желания резултат.

Горното може да бъде показано в три отделни конвейера:

db.users.aggregate([
    { "$match": { "username": "xyz" } },
    { "$unwind": "$followers" },
    {
        "$project": {
            "username": 1,
            "count": "$followers.count",
            "date": { "$dateToString": { "format": "%Y-%m-%d", "date": "$followers.ts" } }
        }
    },
    {
        "$group": {
            "_id": "$_id",
            "username": { "$first": "$username" },
            "followers": { "$push": {
                "count": "$count",
                "date": "$date"
            }}
        }
    }
])

С MongoDB 3.4 и по-нови можете да използвате новия $addFields тръбопроводна стъпка заедно с $map за създаване на полето за масив без необходимост от разгъване и групиране:

db.users.aggregate([
    { "$match": { "username": "xyz" } },    
    {
        "$addFields": {
            "followers": { 
                "$map": { 
                    "input": "$followers", 
                    "as": "follower",
                    "in": { 
                        "count": "$$follower.count", 
                        "date": { 
                            "$dateToString": { 
                                "format": "%Y-%m-%d", 
                                "date": "$$follower.ts" 
                            }
                        } 
                    } 
                } 
            }
        }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo JSON документ -> JSON -> BSON

  2. TypeError при /accounts/login/ id трябва да бъде екземпляр на (str, unicode, ObjectId), а не <type 'int'>

  3. Какви са конвенциите за именуване за MongoDB?

  4. Обектът за валидиране трябва да има поне един оператор / meteor mongo

  5. MongoDB:Масивът на геопространствения индекс не е в правилен формат