Grup mongodb jika bukan nol

Di MongoDB, $ifNull_ adalah operator pipa agregasi yang memungkinkan Anda menentukan nilai untuk digunakan sebagai pengganti null

Cara kerjanya adalah, Anda memberikan ekspresi dan ekspresi pengganti. Jika ekspresi mengevaluasi ke nilai bukan nol, ekspresi itu dikembalikan. Tetapi jika ekspresi bernilai null, $ifNull mengembalikan nilai ekspresi pengganti

Nilai nol mencakup contoh nilai yang tidak ditentukan atau bidang yang hilang

Contoh

Misalkan kita memiliki koleksi bernama test dengan dokumen-dokumen berikut

{ "_id" : 1, "data" : 250 }
{ "_id" : 2, "data" : -250 }
{ "_id" : 3, "data" : "Bucket" }
{ "_id" : 4, "data" : 0 }
{ "_id" : 5, "data" : ISODate("2021-01-03T23:30:15.100Z") }
{ "_id" : 6, "data" : null }
{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }

Inilah yang terjadi jika kita menggunakan operator $ifNull pada bidang

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)
1

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)
_

Hasil

{ "_id" : 1, "result" : 250 }
{ "_id" : 2, "result" : -250 }
{ "_id" : 3, "result" : "Bucket" }
{ "_id" : 4, "result" : 0 }
{ "_id" : 5, "result" : ISODate("2021-01-03T23:30:15.100Z") }
{ "_id" : 6, "result" : "Value not provided" }
{ "_id" : 7, "result" : Infinity }
{ "_id" : 8, "result" : -Infinity }

Kita dapat melihat bahwa hanya satu bidang yang memiliki nilai nol dan oleh karena itu, itu adalah satu-satunya bidang yang mengembalikan

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)
2

Bidang yang Tidak Terdefinisi dan Hilang

Seperti disebutkan, nilai yang tidak ditentukan dan bidang yang hilang diperlakukan sebagai nilai nol

Misalkan kita menambahkan dokumen berikut ke dalam koleksi kita

{ "_id" : 9, "data" : undefined }
{ "_id" : 10, "name" : "Homer" }

Dalam hal ini, dokumen 9 memiliki

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)
_3 di bidang data, tetapi dokumen 10 bahkan tidak memiliki bidang
db.test.aggregate(
   [
     {
       $project:
          {
            result: { $ifNull: [ "$data", "Value not provided" ] }
          }
     }
   ]
)
1

Anda dapat menggunakan sintaks berikut untuk meminta semua dokumen di mana bidang tertentu bukan nol di MongoDB.
db.collection.find({"field_name":{$ne:null}}) 
_

Contoh berikut menunjukkan cara menggunakan sintaks ini dalam praktik

Contoh 1. Kueri untuk "not null" di Bidang Tertentu

Misalkan kita memiliki kumpulan tim dengan dokumen-dokumen berikut.

db.teams.insertOne({team: "Mavs", position: null, points: 31})
db.teams.insertOne({team: "Spurs", position: "Guard", points: 22})
db.teams.insertOne({team: "Rockets", position: null, points: 19})
db.teams.insertOne({team: "Warriors", position: "Forward", points: 26})
db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})
_

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen di mana bidang "posisi" bukan nol

db.teams.find({"position":{$ne:null}})

Kueri ini mengembalikan dokumen berikut

{ _id: ObjectId("618bf18f35d8a762d3c28717"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

{ _id: ObjectId("618bf18f35d8a762d3c2871a"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Perhatikan bahwa satu-satunya dokumen yang dikembalikan adalah dokumen yang bidang "posisi" bukan nol

Contoh 2. Kueri untuk “not null” (Saat Tidak Setiap Dokumen Berisi Bidang)

Misalkan kita memiliki kumpulan tim dengan dokumen-dokumen berikut.

db.teams.insertOne({team: "Mavs", position: null, points: 31})
db.teams.insertOne({team: "Spurs", points: 22})
db.teams.insertOne({team: "Rockets", position: null, points: 19})
db.teams.insertOne({team: "Warriors", position: "Forward", points: 26})
db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})

Perhatikan bahwa dokumen kedua dalam kumpulan bahkan tidak memiliki bidang "posisi".

Kita dapat menggunakan kode berikut untuk menemukan semua dokumen di mana bidang "posisi" bukan nol

db.teams.find({"position":{$ne:null}})

Kueri ini mengembalikan dokumen berikut

{ _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

{ _id: ObjectId("618bf18f35d8a762d3c2871a"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Karena dokumen kedua bahkan tidak memiliki bidang "posisi", maka tidak dikembalikan

Perhatikan juga bahwa dua dokumen lain yang memiliki nilai nol di bidang “posisi juga tidak dikembalikan

Ringkasan. Dengan menggunakan $ne. sintaks nol, kami hanya mengembalikan dokumen di mana bidang tertentu ada dan bukan nol

BUKAN kondisi NULL di MongoDB?

Pada dasarnya batasan “not null” digunakan untuk menampilkan dokumen tanpa null dari koleksi sesuai kebutuhan kita artinya sesuai kebutuhan kita . Pada dasarnya, kita dapat menggunakan metode $exists untuk mengimplementasikan not null di MongoDB.

Bagaimana cara menulis kueri NOT NULL di MongoDB?

Untuk kueri bukan nilai null, kita dapat menggunakan operator $ne serta operator $eq dan menentukan nilai yang diinginkan yang ingin kita kueri.

Bagaimana cara saya memeriksa apakah suatu nilai null di MongoDB?

MongoDB mengambil dokumen yang berisi 'null' . > db. dapat diuji. temukan( { "bunga". nol } ).

Bagaimana Anda bisa mengelompokkan berdasarkan nilai tertentu di MongoDB?

Kita dapat mengelompokkan berdasarkan satu atau beberapa bidang dari koleksi, kita dapat menggunakan $group operator di MongoDB untuk mengelompokkan bidang dari koleksi and returns the new document as result. We are using $avg, $sum, $max, $min, $push, $last, $first and $addToSet operator with group by in MongoDB.