有没有办法让{} 1 的字段不被打印出来,打印出内在的值?
Is there a way to prevent {} 1 Fields from being printed and print the inner value?
我正在使用 mongodb 罗盘查询 mongodb,我无法以 table 形式打印值,它总是打印 {} 1 个字段..我想打印里面的值是 table。当我使用 mongoexport
时也会发生同样的事情
这是因为 find()
命令中的项目没有规范化对象结构。所以为生日返回的输出字段仍然是一个只有 1 个字段的对象。类似于 {roleID: 9, formAnswers : { birthday : { value : "06/29/1981 17:04:29"}}}
要获得您期望的输出,您应该使用聚合管道,这可以使其成为顶级字段。类似于 db.coll.aggregate({$project : {roleID:1, birthday : "$formAnswers.birthday.value"}})
您应该使用聚合管道,如下图所示:
另一种选择是将 Robo3T (Ex Robomongo) 与以下查询一起使用:
db.getCollection('test').aggregate([ { '$addFields': {'birthdayValue': '$formAnswer.birthday.value'}}, {'$project': {'_id': 0, 'roleID': 1, 'birthdayValue': 1}}])
你会得到一些东西,如这张图片所示:
我正在使用 mongodb 罗盘查询 mongodb,我无法以 table 形式打印值,它总是打印 {} 1 个字段..我想打印里面的值是 table。当我使用 mongoexport
时也会发生同样的事情这是因为 find()
命令中的项目没有规范化对象结构。所以为生日返回的输出字段仍然是一个只有 1 个字段的对象。类似于 {roleID: 9, formAnswers : { birthday : { value : "06/29/1981 17:04:29"}}}
要获得您期望的输出,您应该使用聚合管道,这可以使其成为顶级字段。类似于 db.coll.aggregate({$project : {roleID:1, birthday : "$formAnswers.birthday.value"}})
您应该使用聚合管道,如下图所示:
另一种选择是将 Robo3T (Ex Robomongo) 与以下查询一起使用:
db.getCollection('test').aggregate([ { '$addFields': {'birthdayValue': '$formAnswer.birthday.value'}}, {'$project': {'_id': 0, 'roleID': 1, 'birthdayValue': 1}}])
你会得到一些东西,如这张图片所示: