如何在mongodb中分配id值?

use*_*653 2 javascript mongoose mongodb node.js express

我正在使用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'}
});
Run Code Online (Sandbox Code Playgroud)

如您所见,我决定包含一个_id字段,因此如果我想创建一个新用户,我需要为该字段生成值,例如:

exports.createUser = function(req,res){
 var user = new User({
    _id: //Generate and assing value here
        //Other properties are retrieved from the request object
 });
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能"生成"或正确地为我的_id字段赋值?mongo如何处理这个问题?

Nas*_*ade 5

我从来没用过猫鼬.但如果_id不包含在插入查询中,mongodb驱动程序将为_id您生成一个ObjectId对象.如果您希望使用自己的_ids,则由您来决定其类型和长度,并且必须保证其在集合中的唯一性,因为任何插入具有重复的文档的尝试_id都将失败.

如果您正在寻找一种创建自定义s 的方法,并提供相当程度的保证唯一性,则此问题的接受答案可能会有用_id.