【发布时间】:2019-03-12 20:30:06
【问题描述】:
我在从 MongoDB 获取数据时遇到了问题。我得到了 ID cannot represent value: { _bsontype: "ObjectID", ... }
有人说:
将每个模型的_id声明为String的类型
所以它有效,问题消失了,但这样做可以吗?我的意思是,MongoDB 不会为了好玩而将 ID 保存为 objectIds ^^。还是一样,用String代替ObjectID?
【问题讨论】:
-
不太确定你在哪里声明这个,但猫鼬通常会处理从字符串到 ObjectId 的转换,所以是的,我认为你很好:)
-
例如: const userSchema = new mongoose.Schema({ _id: String, username: { type: String, required: true, unique: true } } -- 谢谢你的回答!:)
-
你不需要在模式中声明你的_id。这是由猫鼬自动处理的。我的猜测是您遇到的问题出在其他问题上,但需要更多代码才能说出有用的内容。
-
或者你可以通过
_id.toString()将ObjectId转成String -
在我的 resolver.js for graphql 我刚刚写了
getPost: async (_, args, { Post }) =>{ const post = await Post.find({}); return posts}来获取所有帖子。
标签: mongodb vue.js mongoose graphql-js