我看到很少的解决方案,但那些并不是我的解决方案 . 我有一个名称结果的数据库,集合名称是如下标记:
db.marks.find();
{ "_id" : ObjectId("54f57522627af4bfdcf79764"), "name" : "John", "scroe1" : 23, "score2" : 21, "score5" : 12 }
{ "_id" : ObjectId("54f5761a627af4bfdcf79765"), "name" : "Mike", "scroe2" : 22, "score3" : 20, "score4" : 22 }
{ "_id" : ObjectId("559d0bc521cb2e056507c3e3"), "name" : "Bush", "score2" : 30 }
我试过了
var doc=db.marks.findOne(); for (var key in doc) print(key);
我得到了
_id
name
score1
score2
score5
但是我希望收集所有关键字如下:
_id, name, score1, score2, score3, score4, score5
名称scroe1得分2得分3
2 回答
findOne只返回第一个找到的文件 . 由于您列出的第一个文档没有score3和score4键,因此不会显示它们 . 如果要在所有文档中显示所有根级别键,则需要遍历db中的所有文档 .
Mongodb
find()
命令有两个参数,第一个是查询,第二个是投影 .像
db.collection.find(query,projection)
之类的东西 .如果文档是
db.myCol.find();
,则返回:并且
db.myCol.find({},{_id:1});
返回: