您可以使用以下語法從collection.find()返回特定字段。
情況1 – 語法如下 –
db.yourCollectionName.find({},{"yourFieldName":1}).pretty();
登錄后復制
上面的字段名稱設置為 1 意味著它將僅返回該字段。如果設置為 0,它將返回除設置為 0 的字段之外的所有字段。
情況 2 – 語法如下 –
db.yourCollectionName.find({},{"yourFieldName":0}).pretty();
登錄后復制
為了理解上述語法,讓我們用 document 創建一個集合。使用文檔創建集合的查詢如下 –
> 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
情況 2
strong> – 在第二種情況下,如果將“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" ] }
登錄后復制
以上就是collection.find() 總是返回 MongoDB 的所有字段?的詳細內容,更多請關注www.92cms.cn其它相關文章!