db. koleksi. metode yang berbeda () digunakan untuk menemukan nilai yang berbeda untuk bidang tertentu di seluruh koleksi tunggal dan mengembalikan hasilnya dalam sebuah array
Sintaksis
db.collection.distinct(field, query)Parameter
NamaDeskripsiDiperlukan /
OptionalTypefieldBidang yang mengembalikan nilai yang berbeda. RequiredstringqueryKueri yang menentukan dokumen untuk mengambil nilai yang berbeda. dokumen yang diperlukan
Contoh dokumen dalam koleksi restoran
{ "address": { "building": "1007", "coord": [ -73.856077, 40.848447 ], "street": "Morris Park Ave", "zipcode": "10462" }, "borough": "Bronx", "cuisine": "Bakery", "grades": [ { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 }, { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 }, { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 }, { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 }, { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 } ], "name": "Morris Park Bake Shop", "restaurant_id": "30075445" } ............ _Contoh. Mengembalikan Nilai Berbeda untuk Bidang
Contoh berikut menampilkan nilai yang berbeda untuk masakan kolam dari semua dokumen dalam koleksi restoran
db.restaurants.distinct( "cuisine" );Keluaran
Metode mengembalikan larik nilai masakan berbeda berikut
Contoh. Mengembalikan Nilai Berbeda untuk Bidang Tertanam
Contoh berikut mengembalikan nilai yang berbeda untuk kode pos bidang, yang disematkan di bidang alamat, dari semua dokumen di koleksi restoran
db.restaurants.distinct( "address.zipcode" ); _Keluaran
Metode mengembalikan larik nilai kode pos berbeda berikut
[ "10019", "10462", "11224", "11225", "11374", "11369", "11219", "11234", "10460", "11226", "11214", "11208", "10065", "11223", "11414", "11218", "11004", "11209", "11215", "10021", "11356", "10314", "10003", "11106", "10024", "10025", "10012", "10005", "11368", "11203", "11205", "10466", "10007", "11201", "10018", "10474", "10174", "11418", "11379", "10016", "10022", "11236", "11385", "11212", "10023", "11230", "11371", "10306", "10458", "10308", "10038", "11211", "10028", "10017", "10465", "10014", "11222", "10013", "11101", "10009", "10305", "11235", "10011", "11363", "11232", "11103", "10309", "10032", "11228", "10036", "10033", "10451", "11372", "11366", "11204", "10312", "10001", "10467", "11435", "11432", "11001", "10302", "11229", "11694", "11420", "11697", "11367", "10463", "11375", "10006", "10452", "11427", "10475", "11373", "10310", "10304", "11238", "10010", "11105", "11377", "10034", "11360", "11415", "11416", "10470", "11354", "10301", "10002", "11361", "11358", "11213", "10128", "10464", "10004", "11239", "11104", "11231", "10075", "11364", "11237", "11249", "11362", "11357", "10303", "11434", "10472", "11220", "11378", "10461", "11417", "10027", "11365", "11413", "10029", "10459", "11421", "10468", "11217", "11216", "10456", "11423", "11207", "11355", "10469", "11206", "10455", "10454", "11210", "10119", "10020", "10453", "11412", "11419", "11429", "11370", "10040", "11430", "11221", "11422", "11428", "11040", "11693", "11411", "10031", "11691", "10457", "11102", "10037", "10106", "10030", "10471", "10112", "11426", "10039", "10035", "11005", "10307", "11692", "10044", "10026", "10280", "11233", "10103", "10121", "10282", "10473", "10281", "11436", "10153", "11433", "10057", "11242", "10111", "10122", "10168", "10107", "10000", "11109", "10171", "11256", "10069", "10311", "11010", "11451", "07005", "10317", "10104", "", "10048", "10123", "11352", "10165", "10167" ]Contoh. Tentukan Kueri dengan berbeda
Contoh berikut mengembalikan nilai yang berbeda untuk kode pos bidang, disematkan di bidang alamat, dari dokumen yang masakannya sama dengan "Delicatessen"
Keluaran
Metode mengembalikan larik nilai kode pos berbeda berikut
[ "11234", "11209", "11356", "10003", "11106", "10314", "11385", "10306", "10308", "10021", "10022", "10006", "10475", "10007", "10017", "10019", "11101", "11215", "10018", "10036", "11365", "10001", "10025", "11426", "11228", "11360", "10012", "11357", "11370", "10016", "10028", "10309", "11694", "10310", "11377", "10013", "10463", "11375", "10002", "11363", "11217", "11361", "10004", "10282", "11364", "10038", "11105", "10464", "11378", "10458", "11222", "11220", "10065", "11232", "11415", "11242", "11354", "11103", "10023", "10451", "10014", "11208", "10112", "11417", "10032", "11430", "11432", "10024", "10020", "11238", "10005", "10011", "11369", "10467", "11230", "11231", "10455", "10010", "11379", "11201", "11355", "11219", "11368", "10033", "11214", "11102", "10027", "10301", "10280", "11434", "11372", "10469", "11206", "10029", "11435", "10461", "10468", "10474", "11423", "10075", "11416", "10462", "10302", "11236", "10312", "11414", "11223", "10035", "11374", "11367", "10128", "11422", "10465", "11237", "11418", "10453", "11207" ]Ambil data restoran dari sini
Perilaku
Bidang Larik
Jika nilai bidang yang ditentukan adalah larik, db. koleksi. yang berbeda () menganggap setiap elemen array sebagai nilai yang terpisah
Misalnya, jika suatu bidang memiliki nilai [ 1, [1], 1 ], maka db. koleksi. yang berbeda() menganggap 1, [1], dan 1 sebagai nilai yang terpisah