Pada artikel ini, kami akan menangani cara mengembalikan nilai unik menggunakan metode MongoDB distinct(). Selain itu, mengembalikan nilai unik dalam larik dan bidang juga dibahas
Di MongoDB, Anda mungkin ingin merender atau mengembalikan nilai unik sesekali, dan Anda dapat melakukannya dengan menggunakan metode distinct()
Metode distinct()_ menghasilkan array nilai yang berbeda untuk bidang yang diberikan di semua koleksi atau tampilan dalam satu koleksi atau tampilan dan membantu Anda mengembalikan nilai unik untuk bidang yang ditentukan di shell mongo
Fungsi distinct()_ di MongoDB
Sintaksis
db.collection.distinct(field, query, options)
Di MongoDB, fungsi harus memiliki dua parameter yang diperlukan yang disebut operator bidang dan kueri. Parameter bidang adalah bidang tempat Anda ingin metode distinct() untuk mendapatkan nilai unik
Parameter kueri menentukan dokumen dari mana nilai yang berbeda harus diambil. Anda dapat mengirimkan fungsi parameter opsi agunan
Perhatikan bahwa jika nilai bidang yang ditentukan adalah larik, distinct() memperlakukan setiap elemen larik sebagai nilai terpisah. Misalnya, jika bidang memiliki nilai db.movies.find().pretty() { "_id" : ObjectId("60322d3501cd70079c48cb65"), "title" : "Enchanted", "year" : 2006, "score" : 10, "rating" : "PG", "__v" : 0 } { "_id" : ObjectId("60322d3501cd70079c48cb67"), "title" : "Final Destination II", "year" : 2015, "score" : 10, "rating" : "PG-13", "__v" : 0 } { "_id" : ObjectId("6190189ef5c8903629012fe1"), "title" : "Fifty Shades of Grey", "year" : 2015, "score" : 10, "rating" : "NC-17", "__v" : 0 } _2, distinct() memperlakukan db.movies.find().pretty() { "_id" : ObjectId("60322d3501cd70079c48cb65"), "title" : "Enchanted", "year" : 2006, "score" : 10, "rating" : "PG", "__v" : 0 } { "_id" : ObjectId("60322d3501cd70079c48cb67"), "title" : "Final Destination II", "year" : 2015, "score" : 10, "rating" : "PG-13", "__v" : 0 } { "_id" : ObjectId("6190189ef5c8903629012fe1"), "title" : "Fifty Shades of Grey", "year" : 2015, "score" : 10, "rating" : "NC-17", "__v" : 0 } 4, db.movies.find().pretty() { "_id" : ObjectId("60322d3501cd70079c48cb65"), "title" : "Enchanted", "year" : 2006, "score" : 10, "rating" : "PG", "__v" : 0 } { "_id" : ObjectId("60322d3501cd70079c48cb67"), "title" : "Final Destination II", "year" : 2015, "score" : 10, "rating" : "PG-13", "__v" : 0 } { "_id" : ObjectId("6190189ef5c8903629012fe1"), "title" : "Fifty Shades of Grey", "year" : 2015, "score" : 10, "rating" : "NC-17", "__v" : 0 } 5, dan db.movies.find().pretty() { "_id" : ObjectId("60322d3501cd70079c48cb65"), "title" : "Enchanted", "year" : 2006, "score" : 10, "rating" : "PG", "__v" : 0 } { "_id" : ObjectId("60322d3501cd70079c48cb67"), "title" : "Final Destination II", "year" : 2015, "score" : 10, "rating" : "PG-13", "__v" : 0 } { "_id" : ObjectId("6190189ef5c8903629012fe1"), "title" : "Fifty Shades of Grey", "year" : 2015, "score" : 10, "rating" : "NC-17", "__v" : 0 } 4 sebagai nilai terpisah
Gunakan Fungsi distinct()_ untuk Mengembalikan Nilai Unik
Mari gunakan fungsi distinct() untuk mengembalikan nilai unik di MongoDB. Koleksi di bawah ini akan digunakan untuk contoh pertama
db.movies.find().pretty() { "_id" : ObjectId("60322d3501cd70079c48cb65"), "title" : "Enchanted", "year" : 2006, "score" : 10, "rating" : "PG", "__v" : 0 } { "_id" : ObjectId("60322d3501cd70079c48cb67"), "title" : "Final Destination II", "year" : 2015, "score" : 10, "rating" : "PG-13", "__v" : 0 } { "_id" : ObjectId("6190189ef5c8903629012fe1"), "title" : "Fifty Shades of Grey", "year" : 2015, "score" : 10, "rating" : "NC-17", "__v" : 0 } _
Mengembalikan Nilai Unik atau Berbeda untuk Bidang di MongoDB
Koleksi film di atas mengembalikan nilai unik untuk bidang yang ditentukan dalam contoh ini. Katakanlah Anda menginginkan nilai unik dari bidang peringkat
Pertanyaan
db.movies.distinct( "rating" ) [ null, "", "NC-17", "PG", "PG-13"] _
Setelah menggunakan kueri di atas, fungsi distinct()_ telah berhasil membantu Anda mengembalikan nilai unik di MongoDB untuk koleksi
Kembalikan Nilai Unik untuk Bidang Tersemat di MongoDB
Dalam contoh ini, menampilkan nilai unik untuk bidang yang disematkan. Namun, koleksi yang digunakan di contoh sebelumnya tidak berisi bidang yang disematkan
Oleh karena itu, koleksi baru akan digunakan, seperti yang ditunjukkan di bawah ini
db.drones.find().pretty() { "_id" : ObjectId("61673f46b34f185eb7b2bf0c"), "utility" : [ "Natural Resource Exploration", "Remote sensing", "Real estate and construction", "Recreation", "Delivery" ], "onSale" : false, "name" : "Nimbari Gryphon Medeta 65", "price" : 77500, "weight" : "77 kilograms", "additionalDetails" : { "material" : "carbon fiber", "moreUses" : [ "Precision Agriculture", "Land Inspection", "Water Inspection", "Cinematography" ] } } { "_id" : ObjectId("61673f46b34f185eb7b2bf0d"), "utility" : [ "Natural Resource Exploration", "Remote sensing", "Real estate and construction", "Recreation", "Delivery" ], "onSale" : false, "name" : "X-Strimmer Eye", "price" : 23500, "weight" : "24 kilograms", "additionalDetails" : { "material" : "glass fiber", "moreUses" : [ "Precision Agriculture", "Cinematography" ] } } { "_id" : ObjectId("61673f46b34f185eb7b2bf0e"), "utility" : [ "Natural Resource Exploration", "Remote sensing", "Real estate and construction", "Recreation", "Delivery" ], "onSale" : false, "name" : "Khai Balemosh Shefqa TRX", "price" : 120500, "weight" : "80 kilograms", "additionalDetails" : { "material" : "aluminum", "moreUses" : [ "Precision Agriculture", "Land Inspection" ] } }
Kueri berikut dapat mengembalikan nilai unik dari semua bidang yang disematkan dari kumpulan database di atas
Pertanyaan
db.drones.distinct( "additionalDetails.material" ) [ "aluminum", "carbon fiber", "glass fiber"] _
Mengembalikan Nilai Unik untuk Bidang Larik Tertanam
Menggunakan fungsi distinct(), Anda dapat menggunakan koleksi yang sama di atas untuk mengembalikan nilai unik dari bidang larik tersemat menggunakan fungsi distinct()
Pertanyaan
db.drones.distinct( "additionalDetails.moreUses" ) ["Cinematography","Land Inspection"] _
Dalam artikel tutorial MongoDB ini, Anda diberikan tampilan mendetail tentang fungsi berbeda dengan koleksi. Mengembalikan nilai unik dalam larik dan bidang atau bidang tersemat juga dijelaskan dengan segmen kode