MongoDB、Mongoose 和复合 _id

MongoDB, Mongoose, and composite _id

新加入 Mongodb & Mongoose.js。

我创建了以下架构和模型:

var schema = new Schema({
    _id: {part1: String, part2: Number},
    name: String
    });
 mongoose.model('myDoc', schema);

我可以保存这个,当我在 mongo 命令行上查看时,它看起来很好。

然而在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 吗?

根据 Mongoose 作者 this post 的说法,Mongoose 尚不支持复合 _id 字段。