您可以使用以下语法从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 的所有字段?的详细内容。
