Rumah >pangkalan data >MongoDB >Collection.find() sentiasa mengembalikan semua medan dalam MongoDB?

Collection.find() sentiasa mengembalikan semua medan dalam MongoDB?

WBOY
WBOYke hadapan
2023-09-08 09:13:031138semak imbas

collection.find() 总是返回 MongoDB 的所有字段?

Anda boleh menggunakan sintaks berikut untuk mengembalikan medan tertentu daripada collection.find().

Kes 1 - Sintaks adalah seperti berikut -

db.yourCollectionName.find({},{"yourFieldName":1}).pretty();

Nama medan di atas ditetapkan kepada 1 bermakna ia hanya akan mengembalikan medan tersebut. Jika ditetapkan kepada 0, ia mengembalikan semua medan kecuali medan ditetapkan kepada 0.

Kes 2 - Sintaks adalah seperti berikut -

db.yourCollectionName.find({},{"yourFieldName":0}).pretty();

Untuk memahami sintaks di atas, mari kita buat koleksi menggunakan dokumen. Pertanyaan untuk mencipta koleksi menggunakan dokumen adalah seperti berikut -

> db.returnFieldInFindDemo.insertOne({"StudentName":"John","StudentAge":23,"TechnicalSubject":["MongoDB","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebfe72f684a30fbdfd566")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Mike","StudentAge":24,"TechnicalSubject":["Java","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ebffd2f684a30fbdfd567")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Sam","StudentAge":22,"TechnicalSubject":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec00f2f684a30fbdfd568")
}
> db.returnFieldInFindDemo.insertOne({"StudentName":"Carol","StudentAge":20,"TechnicalSubject":["DataStructure","Algorithm"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8ec0292f684a30fbdfd569")
}

Paparkan semua dokumen dalam koleksi dengan bantuan kaedah find(). Pertanyaannya adalah seperti berikut -

> db.returnFieldInFindDemo.find().pretty();

Di bawah ialah output -

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}

Kes 1 - Ini ialah pertanyaan di mana anda akan mengembalikan medan tertentu.

Pertanyaan adalah seperti berikut -

> db.returnFieldInFindDemo.find().pretty();

Output:

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23,
   "TechnicalSubject" : [
      "MongoDB",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24,
   "TechnicalSubject" : [
      "Java",
      "Python"
   ]
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22,
   "TechnicalSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20,
   "TechnicalSubject" : [
      "DataStructure",
      "Algorithm"
   ]
}

Melihat pada contoh output di atas, saya telah memulakan medan "TechnicalSubject" kepada 1. Ini bermakna ia hanya akan mengembalikan medan "TechnicalSubject" daripada semua dokumen.

Kes 2

Kes 2

kuat> - Dalam kes kedua, jika anda menetapkan medan "TechnicalSubject" kepada 0, ini bermakna anda akan mendapat semua medan kecuali "TechnicalSubject".

Pertanyaan adalah seperti berikut -

> db.retunFieldInFindDemo.find({},{"TechnicalSubject":0}).pretty();

Berikut ialah output:

{
   "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"),
   "StudentName" : "John",
   "StudentAge" : 23
}
{
   "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"),
   "StudentName" : "Mike",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"),
   "StudentName" : "Sam",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5c8ec0292f684a30fbdfd569"),
   "StudentName" : "Carol",
   "StudentAge" : 20
}

Kes 3 - Seperti yang anda tahu jika anda hanya menggunakan find() maka ia akan mengembalikan semua medan.

Pertanyaan adalah seperti berikut -

> db.retunFieldInFindDemo.find();

Berikut ialah output:

{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23, "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24, "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22, "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20, "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }

Atas ialah kandungan terperinci Collection.find() sentiasa mengembalikan semua medan dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam