Computer >> Máy Tính >  >> Lập trình >> MongoDB

Collection.find () luôn trả về tất cả các trường với MongoDB?

Bạn có thể trả về một trường cụ thể từ collection.find () bằng cách sử dụng cú pháp sau.

Trường hợp 1 - Cú pháp như sau -

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

Tên trường ở trên được đặt thành 1 có nghĩa là nó sẽ chỉ trả về trường đó. Nếu bạn đặt thành 0, nó sẽ trả về tất cả các trường ngoại trừ trường được đặt thành 0.

Trường hợp 2 - Cú pháp như sau -

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

Để hiểu các cú pháp trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với tài liệu như sau -

> 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")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau -

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

Sau đây là kết quả -

{
   "_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"
   ]
}

Trường hợp 1 - Đây là truy vấn mà bạn sẽ trả về trường cụ thể.

Truy vấn như sau -

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

Đầu ra:

{
   "_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"
   ]
}

Nhìn vào kết quả đầu ra mẫu ở trên, tôi đã khởi tạo trường “TechnicalSubject” thành 1. Điều này có nghĩa là nó sẽ chỉ trả về trường “TechnicalSubject” từ tất cả các tài liệu.

Trường hợp 2 - Trong trường hợp thứ hai, nếu bạn đặt trường “TechnicalSubject” thành 0 có nghĩa là bạn sẽ nhận được tất cả các trường ngoại trừ “TechnicalSubject”.

Truy vấn như sau -

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

Sau đây là kết quả:

{
   "_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
}

Trường hợp 3 - Như bạn đã biết, nếu bạn chỉ sử dụng để tìm () thì nó sẽ trả về tất cả các trường.

Truy vấn như sau -

> db.retunFieldInFindDemo.find();

Sau đây là kết quả:

{
   "_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"
   ]
}