MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB - Kueri Proyeksi

kueri proyeksi adalah kueri tempat Anda menentukan bidang mana yang harus dikembalikan.

Di MongoDB, saat Anda menanyakan koleksi menggunakan db.collection.find() metode, Anda dapat menentukan bidang mana yang ingin Anda kembalikan.

Anda dapat melakukannya dengan menyertakan nama bidang dalam kueri Anda, dan menambahkan 1 atau 0 di sebelahnya, untuk menentukan apakah itu harus dikembalikan atau tidak. Ini adalah proyeksi parameter. Parameter proyeksi 1 akan menampilkan bidang dan 0 akan menyembunyikannya.

Contoh

Pertama mari kita lakukan kueri tanpa proyeksi (sehingga kita dapat melihat berapa banyak bidang yang dikembalikan):

Tanpa Proyeksi

db.musicians.find( { instrument: "Vocals"} )

Hasil:

{ "_id" : 1, "name" : "Ian Gillan", "instrument" : "Vocals" }
{ "_id" : 6, "name" : "Jeff Martin", "instrument" : "Vocals", "born" : 1969 }

Dengan Proyeksi

Sekarang, mari gunakan proyeksi untuk hanya menampilkan nama bidang:

db.musicians.find( { instrument: "Vocals" }, { name: 1 } )

Hasil:

{ "_id" : 1, "name" : "Ian Gillan" }
{ "_id" : 6, "name" : "Jeff Martin" }

Anda akan melihat bahwa _id bidang disertakan secara otomatis, bahkan jika Anda tidak menentukannya. Anda dapat mengecualikan bidang ini dengan menggunakan 0 menentangnya:

db.musicians.find( { instrument: "Vocals" }, { _id: 0, name: 1 } )

Hasil:

{ "name" : "Ian Gillan" }
{ "name" : "Jeff Martin" }

Mencampur Penyertaan dan Pengecualian

Anda tidak dapat mencampur 1 s dan 0 s (dengan pengecualian _id bidang). Jika Anda mencoba menggabungkan penyertaan dan pengecualian, seperti ini:

db.musicians.find( { instrument: "Vocals" }, { name: 1, born: 0 } )

Anda akan mendapatkan kesalahan ini:

Error: error: {
	"waitedMS" : NumberLong(0),
	"ok" : 0,
	"errmsg" : "Projection cannot have a mix of inclusion and exclusion.",
	"code" : 2
}

Jadi, Anda dapat menyertakan bidang atau mengecualikannya — bukan keduanya.

Berikut ini contoh menentukan bidang dengan pengecualian:

db.musicians.find( { instrument: "Vocals" }, { _id: 0, instrument: 0 } )

Hasil:

{ "name" : "Ian Gillan" }
{ "name" : "Jeff Martin", "born" : 1969 }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menginstal MongoDB dengan Homebrew

  2. Mengapa luwak selalu menambahkan s di akhir nama koleksi saya?

  3. hapus _id dari hasil mongo

  4. Terapkan MongoDB di Amazon Virtual Private Cloud (VPC)

  5. Bagaimana Anda bisa menentukan urutan properti dalam objek javascript untuk indeks MongoDB di node.js?