MongoDB 中的 collection.find() 方法是否始終返回所有欄位?
您可以使用以下語法從 collection.find() 中返回特定欄位。
情況 1 − 語法如下所示:
db.yourCollectionName.find({},{"yourFieldName":1}).pretty();上述欄位名稱設定為 1 表示它將僅返回該欄位。如果設定為 0,則它將返回除設定為 0 的欄位之外的所有欄位。
情況 2 − 語法如下所示:
db.yourCollectionName.find({},{"yourFieldName":0}).pretty();為了理解上述語法,讓我們建立一個包含文件的集合。建立包含文件的集合的查詢如下所示:
> 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")
}使用 find() 方法顯示集合中的所有文件。查詢如下所示:
> db.returnFieldInFindDemo.find().pretty();
以下是輸出:
{
"_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"
]
}情況 1 − 以下是您將返回特定欄位的查詢。
查詢如下所示:
> db.returnFieldInFindDemo.find().pretty();
輸出
{
"_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"
]
}檢視以上示例輸出,我已將欄位“TechnicalSubject”初始化為 1。這意味著它將僅從所有文件中返回欄位“TechnicalSubject”。
情況 2 − 在第二種情況下,如果將欄位“TechnicalSubject”設定為 0,則表示您將獲得除“TechnicalSubject”之外的所有欄位。
查詢如下所示:
> db.retunFieldInFindDemo.find({},{"TechnicalSubject":0}).pretty();以下是輸出
{
"_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
}情況 3 − 如您所知,如果您僅使用 find(),則它將返回所有欄位。
查詢如下所示:
> db.retunFieldInFindDemo.find();
以下是輸出
{ "_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" ] }
廣告
資料結構
網路
關係型資料庫
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP