gpt4 book ai didi

mongodb - Flow Router 不适用于 ObjectID。任何修复?

转载 作者:可可西里 更新时间:2023-11-01 09:35:19 25 4
gpt4 key购买 nike

我正在尝试在我的 Meteor 应用程序中构建路线。路由工作得很好,但是从带有路由路径的数据库获取信息是行不通的。我用这个创建我的页面特定路由:

FlowRouter.route('/level/:id'...

这条路线可以毫无问题地将我带到相关模板。然后我想从属于该页面的数据库中获取一些数据。在我的模板助手中,我通过以下方式获取我的页面 ID:

var id = FlowRouter.getParam('id');

这会获取 ObjectID() 但采用字符串格式。所以我试着用这个在集合中找到 ObjectID() 文档:

Levels.findOne({_id: id});

但是文档当然没有字符串格式的 ObjectID(否则我们不会称它为“object”id)。因此,它带来了未定义的错误。我不想处理创建自己的 _id 的问题,那么我能做些什么吗?

PS:Mongo 曾经使用纯文本创建 _id。就像我现在使用 _id._str 一样,但突然之间,它生成了 ObjectID()。我不知道为什么,有什么想法吗?

最佳答案

MongoDB 默认使用 ObjectId 作为 _id,Meteor 默认明确设置 GUID 字符串。

也许您过去使用 meteor shell session 插入,现在使用 mongo shell/GUI 或 meteor mongo 提示来执行此操作,这导致 正在创建 ObjectId

如果在开发环境中发生这种情况,您可以重新生成数据。

否则,您可以尝试使用 Meteor.uuid() 为您的数据生成新的 _id

如果你想使用ObjectId作为某个集合的默认值,你可以指定idGeneration其构造函数的选项作为 'MONGO'

如果你有一个ObjectId的字符串内容并且想转换它,你可以发出

let _id = new Mongo.ObjectID(my23HexCharString);

关于mongodb - Flow Router 不适用于 ObjectID。任何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com