Mongodb berbeda mengembalikan semua bidang

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

Bagaimana cara mendapatkan semua nilai berbeda di MongoDB?

MongoDB – Metode Distinct() . Dibutuhkan tiga parameter, yang pertama adalah bidang untuk mengembalikan nilai yang berbeda dan yang lainnya opsional.

Bagaimana cara mendapatkan nilai bidang yang berbeda di Kompas MongoDB?

Anda dapat melakukan ini melalui kerangka agregasi di Kompas, menggunakan $unwind dan $group . $unwind dilakukan untuk membuat dokumen unik untuk setiap elemen dalam larik target, yang memungkinkan operator $addToSet di tahap $group untuk kemudian menangkap genre sebagai elemen yang berbeda.

Bisakah kita menggunakan perbedaan dengan find di MongoDB?

Baik operasi pencarian dan pembeda sangat berguna untuk mengambil data dari MongoDB . Operasi pencarian mengembalikan data sekaligus atau menurut kueri dan proyeksi. Operasi yang berbeda memiliki fungsi khusus untuk mengambil nilai unik dari bidang tertentu.

Bagaimana cara mendapatkan nilai bidang yang berbeda di MongoDB Java?

Anda dapat mengambil daftar nilai yang berbeda untuk bidang di seluruh koleksi dengan memanggil metode yang berbeda() pada objek MongoCollection . Berikan nama bidang dokumen sebagai parameter pertama dan kelas tempat Anda ingin mentransmisikan hasilnya sebagai parameter kedua seperti yang ditunjukkan di bawah ini. koleksi. berbeda ("negara", String.