MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Ubah perbedaan tanggal menjadi tahun untuk menghitung usia di MongoDB

Pembaruan:Solusi MongoDB 5.0, akan mempertimbangkan tahun kabisat juga

db.collection.aggregate([
  { $addFields:
    { age: { $dateDiff: { startDate: "$dob", endDate: "$$NOW", unit: "year" } } }
  }
])

Pembaruan:Kami hanya dapat menggabungkan operator agregasi. Perhatikan bahwa solusi ini tidak akan memberikan hasil yang akurat karena tidak mempertimbangkan tahun kabisat

db.getCollection('person').aggregate( [ { 
    $project: { 
        date:"$demographics.DOB", 
        age: { 
            $divide: [{$subtract: [ new Date(), "$Demographics.DOB" ] }, 
                    (365 * 24*60*60*1000)]
        } 
     } 
} ] )

Solusi lama dengan $let

Saya dapat menyelesaikan masalah dengan $let ekspresi

db.getCollection('person').aggregate( [ { 
    $project: { 
        item: 1, 
        date:"$demographics.DOB", 
        age: { 
            $let:{
                vars:{
                    diff: { 
                        $subtract: [ new Date(), "$demographics.DOB" ] 
                    }
                },
                in: {
                    $divide: ["$$diff", (365 * 24*60*60*1000)]
                }
            }
        } 
     } 
} ] )


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mongodump dari OpenShift dan mongorestore secara lokal di MongoDB 2.4.9?

  2. bagaimana cara membuat serial kelas?

  3. MongoDB:Perbarui bidang item dalam array dengan mencocokkan bidang lain dari item itu

  4. MongoDB $jam

  5. MongoDB menemukanSatu()