mongodb - 了解新的 mongo id 并将其与 iron-router 一起使用

标签 mongodb meteor iron-router

我有一个简单的帖子路由,用于查找帖子 _id。 问题是 pathFor 帮助程序创建了这样的路径:

ObjectID("52e16453431fc2fba4b6d6a8")

我猜 mongoDB 插入已经改变,现在 _id 对象在其中包含另一个名为 _str 的对象。

这是我的路线:

this.route("post", {
        path: "/post/:_id",

        waitOn:function(){
            NProgress.start();
            Meteor.subscribe("Teams");
        },

        before: function () {
            NProgress.done();
        },

        data: function () {
            return Posts.findOne({_id: this.params._id});
        }
    });

目前,它创建了一个 href 像:

 post/ObjectID("52e16453431fc2fba4b6d6a8")

点击它打开一个 url

post/ObjectID("52e16453431fc2fba4b6d6a8") 

但是,我得到的是“NotFound”模板而不是帖子。

我该如何解决这个问题?

最佳答案

您需要更改 pathFor 'post' 以传递 ObjectId 52e16453431fc2fba4b6d6a8 的十六进制表示,而不是 ObjectId('52e16453431fc2fba4b6d6a8')

试试这样的 pathFor 'post' _id=this._id.toHexString

一旦你传递了十六进制字符串,你就可以在你的路由器中使用它

return Posts.findOne({ _id: new Meteor.Collection.ObjectID(this.params._id)});

关于mongodb - 了解新的 mongo id 并将其与 iron-router 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317621/

相关文章:

mongodb - Kubernetes MongoDB 自动缩放

javascript - meteor Session.set, Session.get

javascript - 命名空间 Meteor 方法来打包

meteor - 简单模式 minDate maxDate

meteor - 使用 Meteor 和 Iron Router 创建事件导航状态

javascript - meteor JS : Template rendered & Meteor method call

mysql - 每个请求可以多次查询 MongoDB 吗?

database - MongoDB - 过滤后获取嵌套数组大小的文档

mongodb - MongoDB Mapreduce 是否总是以 float 形式返回结果?

node.js - meteor 订阅不更新集合的排序顺序