MongoDB、Mongoose 和复合 _id
Posted
技术标签:
【中文标题】MongoDB、Mongoose 和复合 _id【英文标题】:MongoDB, Mongoose, and composite _id 【发布时间】:2015-04-24 07:17:05 【问题描述】:Mongodb 和 Mongoose.js 的新手。
我创建了以下架构和模型:
var schema = new Schema(
_id: part1: String, part2: Number,
name: String
);
mongoose.model('myDoc', schema);
我可以保存这个,当我在mongo命令行上查看时,它看起来很好。
但是当我这样做的时候是猫鼬:
myDoc.find(, function(err, recs)
var rec = recs[0];
console.log('----' + JSON.stringify(rec));
);
我打印出我的对象,但有以下例外:Cast to ObjectId failed for value "[object Object]" at path "_id"
我看到了一些解释,但我不明白我做错了什么,以及我需要如何解决它。
根据 mongodb 文档,_id 可以是 bson 类型。我究竟做错了什么? part1: String, part2: Number 不是 bson 吗?
【问题讨论】:
@JohnnyHK,好的,谢谢,请将其添加为答案。 【参考方案1】:根据 Mongoose 作者的 this post,Mongoose 尚不支持复合 _id
字段。
【讨论】:
谢谢,我只是使用默认的 mongo _id。而是创建了一个唯一的复杂索引。以上是关于MongoDB、Mongoose 和复合 _id的主要内容,如果未能解决你的问题,请参考以下文章
使用 Mongoose 在投影中包含 Mongodb“_id”字段
使用 Mongoose 在投影中包含 Mongodb“_id”字段