有人可以解释为什么我得到的是ObjectID的全部值而不是干净的ID?
这就是我得到的:
HTML输出:
<a href="/summary/ObjectID(%2254ab87a24c38814aa128da7b%22)">My Post</a>
我没有做任何与众不同的事情。现在非常基本的东西。只是第一次尝试流星。
路由:lib / router.js
// Dashboard
Router.route('/dashboard', {name: 'dashboard'});
// Post detail
Router.route('/summary/:_id', {
name: 'postSummary',
data: function() {
return Post.findOne(this.params._id);
}
});
列出页面模板:templates / posts / post_dashboard.html
{{#each posts}}
<tr>
<td>
<p><a href="{{pathFor 'postSummary'}}">{{title}}</a></p>
<p><small>Created at {{createdAt}}</small></p>
</td>
...
</tr>
{{/each}}
详细信息页面模板:templates / posts / post_summary.html
<template name="postSummary">
{{> postHeader}}
<h3>{{title}}</h3>
</template>
模板助手:templates / posts / posts.js
Template.dashboard.helpers({
posts: function () {
return Post.find({});
}
});
以下是我安装的软件包,以防万一。
meteor-platform
autopublish
insecure
matthew:foundation5-sass
iron:router
jquery
useraccounts:core
useraccounts:foundation
accounts-password
accounts-facebook
accounts-google
accounts-ui-unstyled
aldeed:autoform
aldeed:collection2
forwarder:autoform-wizard
fortawesome:fontawesome
答案 0 :(得分:5)
从控制台查询Posts
集合时,返回文档中的_id
是字符串文字还是ObjectId对象?
假设它是后者,那就是为什么会发生这种情况,如果是这样,那可能是因为你已经使用{{1}填充了这个集合在Mongo shell中(或者从现有的MongoDB中恢复)。默认情况下,Meteor插入在未指定id时使用字符串作为自动添加的id,而Mongo使用ObjectIds。
希望有所帮助,但如果我走错了轨道,请告诉我!
答案 1 :(得分:0)
Mongo ObjectID有一个属性:_str
它包含ID的字符串表示。