Kurangi dua angka untuk mengembalikan perbedaan, atau dua tanggal untuk mengembalikan perbedaan dalam milidetik, atau tanggal dan angka dalam milidetik untuk mengembalikan tanggal yang dihasilkan
Ekspresi $subtract memiliki sintaks berikut
{ $subtract: [ <expression1>, <expression2> ] }
Argumen kedua dikurangi dari argumen pertama
Argumen dapat valid selama mereka memutuskan angka dan/atau tanggal. Untuk mengurangkan angka dari tanggal, tanggal harus menjadi argumen pertama. Untuk informasi lebih lanjut tentang ekspresi, lihat
Contoh
Pertimbangkan koleksi { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } _0 dengan dokumen-dokumen berikut
{ "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } _
Kurangi Angka
Agregasi berikut menggunakan ekspresi $subtract untuk menghitung { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } 2 dengan mengurangkan { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } 3 dari subtotal { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } 4 dan { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } 5
db.sales.aggregate( [ { $project: { item: 1, total: { $subtract: [ { $add: [ "$price", "$fee" ] }, "$discount" ] } } } ] )
Operasi mengembalikan hasil berikut
{ "_id" : 1, "item" : "abc", "total" : 7 } { "_id" : 2, "item" : "jkl", "total" : 19 } _
Kurangi Dua Tanggal
Agregasi berikut menggunakan ekspresi $subtract untuk mengurangi { "_id" : 1, "item" : "abc", "price" : 10, "fee" : 2, "discount" : 5, "date" : ISODate("2014-03-01T08:00:00Z") } { "_id" : 2, "item" : "jkl", "price" : 20, "fee" : 1, "discount" : 2, "date" : ISODate("2014-03-01T09:00:00Z") } 7 dari tanggal saat ini
db.sales.aggregate( [ { $project: { item: 1, dateDifference: { $subtract: [ new Date(), "$date" ] } } } ] )
Operasi mengembalikan hasil berikut
{ "_id" : 1, "item" : "abc", "dateDifference" : NumberLong("11713985194") } { "_id" : 2, "item" : "jkl", "dateDifference" : NumberLong("11710385194") }
Kurangi Milidetik dari Tanggal
Agregasi berikut menggunakan ekspresi $subtract untuk mengurangi 5 * 60 * 1000 milidetik (5 menit) dari kolom “$date”
db.sales.aggregate( [ { $project: { item: 1, dateDifference: { $subtract: [ "$date", 5 * 60 * 1000 ] } } } ] )
Operasi mengembalikan hasil berikut
{ "_id" : 1, "item" : "abc", "dateDifference" : ISODate("2014-03-01T07:55:00Z") } { "_id" : 2, "item" : "jkl", "dateDifference" : ISODate("2014-03-01T08:55:00Z") }
← $sqrt (agregasi) $trunc (agregasi) →
© MongoDB, Inc 2008-sekarang. MongoDB, Mongo, dan logo daun adalah merek dagang terdaftar dari MongoDB, Inc