2015-10-05 38 views
0

当我在meteor shell键入此这是我所看到的:如何让流星壳显示整个对象?

> Meteor.users.find({username: "test"}).fetch() 
[ { _id: 'rKAAq3koteTGQZyey', 
    createdAt: Mon Oct 05 2015 15:24:55 GMT+1300 (NZDT), 
    services: { password: [Object] }, 
    username: 'test', 
    emails: [ [Object] ], 
    profile: { services: [Object] } } ] 
> 

我想看看里面有什么[Object]

我真的很讨厌不得不求助于刚刚把什么事都JSON:

How do I get meteor shell output to be more verbose?

> JSON.stringify(Meteor.users.find().fetch(), undefined, 2); 
'[\n {\n "_id": "rAw9EHxEdMFho2yvc",\n "createdAt": "2015-10-05T01:51:18.103Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$UN5JtVvFtgZ4rfuwSSGPDOtMRIUBVR9QCSWvEOPAFkTqteQhCO8wi"\n  },\n  "resume": {\n  "loginTokens": [\n   {\n   "when": "2015-10-05T01:51:50.198Z",\n   "hashedToken": "KmmMczQ6R6kwkQWuQdRR8wlrvSwNW12LsGDsoeDfZ3Q="\n   }\n  ]\n  }\n },\n "username": "admin",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ]\n },\n {\n "_id": "PxYZ5ACGgYC7ZJXnB",\n "createdAt": "2015-10-05T01:51:18.230Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$CUqmJq8yhbvWSIEQBUwPv.dGLx16kckhL3Xz2eGl8QyyI.gIiFF8q"\n  }\n },\n "username": "alex",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ]\n },\n {\n "_id": "ZpyAMTdwNzeBMLZuc",\n "createdAt": "2015-10-05T01:51:18.342Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$BUs2mCOXxmQPBvFpkUgIWO8RCsJh9OQphtMc5Eg7Fb2S1yIBG2NFu"\n  }\n },\n "username": "ana",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ]\n },\n {\n "_id": "MqipzbhRpJmv5sqww",\n "createdAt": "2015-10-05T01:51:18.534Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$Ltgla017NQkJDlvlltQ1TOjNQ7FUv92kgOUa6bCh2lwRQpqsMRr.i"\n  }\n },\n "username": "jose",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ]\n },\n {\n "_id": "T8ggaDgaSmWANbDmk",\n "createdAt": "2015-10-05T01:51:18.678Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$C7Wg4l87ALPaq/8Uhjo8FOnCBhw9n5qoyEkJkq9FzxM5./XU8NzSa"\n  }\n },\n "username": "anthony",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ]\n },\n {\n "_id": "rKAAq3koteTGQZyey",\n "createdAt": "2015-10-05T02:24:55.162Z",\n "services": {\n  "password": {\n  "bcrypt": "$2a$10$aYBlVYJhl1vS8iDYF6nuUObYDTK6prfUtaqL9ao0Hq7uX863IyTa."\n  }\n },\n "username": "test",\n "emails": [\n  {\n  "address": "[email protected]",\n  "verified": false\n  }\n ],\n "profile": {\n  "services": [\n  {\n   "hdrPhotos": 100\n  }\n  ]\n }\n }\n]' 
> 
+0

你觉得它缺少什么字段?所有打开和关闭的括号匹配起来,这是一个有效的对象。 – tmcgoo

+0

同意,看起来像一个完整的,有效的对象 – JeremyK

+0

嗯......我可以发誓,我创建用户时,我添加了一个'个人资料'字段。 – fuzzybabybunny

回答

0
function printObj(obj){ 
    console.log(JSON.stringify(obj, null, 2)); 
} 

则:

printObj(Meteor.users.find().fetch()) 

输出将不会在shell,但在服务器日志中,但将返回所有你想要的数据。

1

只要做到:

$ meteor mongo 

这会给你蒙戈DB的直接访问。那么你可以这样做:

db.users.findOne({username: "test"}) 

你会得到整个对象为你打好。

+0

findOne()的输出很好地缩进,但db.users.find()的输出结果并不漂亮。 – JeremyK

+0

因为它是一个游标。如果你想漂亮地打印它,在游标中使用'.forEach()'循环,在循环内部使用'findOne()'。 'db.users.find({})。forEach(function(u){db.users.findOne({_ id:u._id})});' –

+0

是的,我知道。我不认为我们真的会得到OP的理想答案,只是解决方法...... – JeremyK