Node.js 如何在mongoose中创建复合唯一的自动递增字段?
我想创建一个模式,在这个模式中,我可以为一个用户设置一个特定的名称,例如许多人可以拥有的显示名称,同时还允许人们根据该名称添加它们。我的解决方案是将该名称保存到一个带有两个字段的模型中,其中一个字段是名称本身,第二个字段的id表示当前使用该名称的次数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
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是否有。