Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在mongoose中创建复合唯一的自动递增字段?_Node.js_Mongodb_Express_Mongoose_Mongoose Schema - Fatal编程技术网

Node.js 如何在mongoose中创建复合唯一的自动递增字段?

Node.js 如何在mongoose中创建复合唯一的自动递增字段?,node.js,mongodb,express,mongoose,mongoose-schema,Node.js,Mongodb,Express,Mongoose,Mongoose Schema,我想创建一个模式,在这个模式中,我可以为一个用户设置一个特定的名称,例如许多人可以拥有的显示名称,同时还允许人们根据该名称添加它们。我的解决方案是将该名称保存到一个带有两个字段的模型中,其中一个字段是名称本身,第二个字段的id表示当前使用该名称的次数 var DisplayName = new Schema({ account: { type: ObjectId, ref: 'Account', }, name: { type: Str

我想创建一个模式,在这个模式中,我可以为一个用户设置一个特定的名称,例如许多人可以拥有的显示名称,同时还允许人们根据该名称添加它们。我的解决方案是将该名称保存到一个带有两个字段的模型中,其中一个字段是名称本身,第二个字段的id表示当前使用该名称的次数

var DisplayName = new Schema({
   account: {
       type: ObjectId,
       ref: 'Account',
   },
   name: {
       type: String,
       trim: true,
       required: true,
   },
   number: {
       type: Number,
       required: true,
   }
});
是我所拥有的,但我想说

var displayName = new DisplayName({
   name: 'name',
   account: req.user.id
});

displayName.save();
它会自动为我设置字段吗

编辑:我意识到原始问题中没有足够的细节:


我想使用mongoose内置的post save处理程序在创建时为我生成此字段。它不应该在创建后更新,只设置第一次

您可以使用如下所示的函数来执行该操作

函数saveDisplayName(模式){
var query=DisplayName.find({name:schema.name});
查询。然后(函数(结果){
var userNumber=1;
如果(结果长度<1){
返回用户号;
}

对于(var i=0;i,您可以使用如下所示的函数来执行该操作

函数saveDisplayName(模式){
var query=DisplayName.find({name:schema.name});
查询。然后(函数(结果){
var userNumber=1;
如果(结果长度<1){
返回用户号;
}

对于(var i=0;我想知道mongoose是否有内置的数字字段?我不知道mong是否有内置的数字字段我知道有一个函数可用,我还可以添加一个后期保存处理程序,我只是想知道mongoose是否有一个内置的,我不知道mongoose是否有。