我最近在学习Meteor.js并且正在制作一个简单的测试应用程序。我在ids
中保存了一系列Session
个集合。
我有两个集合:Workouts
和AssignedWorkouts
。 AssignedWorkouts
有一个字段,用于存储id
的{{1}}。
Workouts
在我的系统和服务器上的行为方式不同。
在服务器上,Session.get("assignedWorkouts")
是一个对象(Workouts._id
),但在我的机器上它是一个字符串。
这是来自test4faceyspacey.meteor.com的控制台,
e._ObjectId
这是我系统的控制台
Workouts.findOne()._id
e._ObjectID {_str: "53188350f47ed90eed042df2", toString: function, equals: function, clone: function, typeName: function…}
typeof Workouts.findOne()._id
"object"
有关为何如此的任何解释?我向一些资深开发者询问了这个问题,但他们说他们从未遇到过这样的问题。
由于这个原因,我需要维护两个不同版本的代码。
请在此处查看已部署的应用: http://test4faceyspacey.meteor.com/
答案 0 :(得分:0)
如果您从Meteor插入文档,则默认情况下会获取字符串ID。如果从mongo命令行或某些mongo ui插入文档,默认情况下它会将对象作为id。
您可以在meteor中覆盖此行为,但我建议您尝试使用该字符串。您确实丢失了对象ID中存在的时间戳,但我告诉您无论如何都要使用显式时间戳。
希望有所帮助。