我正在使用node.js和mongoose.我正在创建一个REST API来公开我的User模型:
var userSchema = new Schema({ _id: {type:Number}, username: {type:String}, age: {type:Number}, genre:{type: Number,ref:'Genre'}, country: {type: Number,ref:'Country'} });
如您所见,我决定包含一个_id字段,因此如果我想创建一个新用户,我需要为该字段生成值,例如:
exports.createUser = function(req,res){ var user = new User({ _id: //Generate and assing value here //Other properties are retrieved from the request object }); };
我怎样才能"生成"或正确地为我的_id字段赋值?mongo如何处理这个问题?
我从来没用过猫鼬.但如果_id
不包含在插入查询中,mongodb驱动程序将为_id
您生成一个ObjectId对象.如果您希望使用自己的_id
s,则由您来决定其类型和长度,并且您必须保证其在集合中的唯一性,因为任何插入具有重复的文档的尝试_id
都将失败.
如果您正在寻找一种创建自定义s 的方法,并提供相当程度的保证唯一性,则此问题的接受答案可能会有用_id
.