var room_schema = new mongoose.Schema({
username: { type: String },
room_num:{type:Number},
room_name:{type:String}
})
room_num需要唯一Number字段,不自增也行,需要保证唯一性,求解~
var room_schema = new mongoose.Schema({
username: { type: String },
room_num:{type:Number},
room_name:{type:String}
})
room_num需要唯一Number字段,不自增也行,需要保证唯一性,求解~
const Mongoose = require('mongoose');
const Schema = Mongoose.Schema;
let counter = 1;
let CountedId = {type: Number, default: () => counter++};
const ModelSchema = new Schema({
id: CountedId,
// ....
});
const Model = Mongoose.model('Model', ModelSchema);
module.exports = Model;
Model.find({ id: { $gt: 0 } }).sort({ id: -1 })
.then(([first, ...others]) => {
if (first)
counter = first.id + 1;
});
当初做博客的时候也遇到过这样的问题。。可以试试用时间戳啊。。
(new Date()).getTime();
不过注意,这个得到的字符串太长了,在数据库中是以double数据类型存储的
5 回答4.8k 阅读✓ 已解决
5 回答3.3k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
自问自答吧,想了一个取巧的办法,在save之前查询所有数据,返回的是一个数组,数组的length本身就是自增,所以直接让他等于数组length就可以了,不知道数据量大了之后会不会影响性能,水平有限,先这样吧....