Я работаю над небольшим проектом Web-API с использованием MongoDB. Насколько я знаю, MongoDB использует _id: UnixDateET C, но мне нужен идентификатор, который, как в MySQL или M SQL, может автоматически увеличиваться при каждом создании нового пользователя. Я поэкспериментировал с «find (). Count ()», нашел несколько попыток для inte rnet, но, похоже, ничего из того, что я пробовал, не работает. Я не совсем уверен, что я делаю это неправильно или это невозможно сделать, как будто я их попробовал. (Моя попытка может быть найдена в разделе "models / user. js": id)
Любые предложения, как я могу напрямую go внести в схему, посчитать ее записи и затем добавить ее в новую запись без какая-то сложная новая отдельная функция? Причина в том, что я стараюсь держать модели в чистоте / читабельности.
Заранее спасибо.
маршруты / пользователь. js:
let mongoose = require('mongoose');
let User = require('../models/user');
var config = require('../configs/config');
var jwt = require('jsonwebtoken');
var bcrypt = require('bcryptjs');
function userRegistration(req, res) {
var hashedPassword = bcrypt.hashSync(req.body.psw, 10);
var user = new User(req.body);
user.psw = hashedPassword;
user.save(function (err) {
if (err) return res.status(500).send("There was a problem registering the user.");
var token = jwt.sign({ id: user.userName }, config.secret, {
expiresIn: 86400 // expires in 24 hours
});
res.status(200).send({ auth: true, token: token });
});
}
//export all the functions
module.exports = { userRegistration };
модели / пользователь. js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
id: this.db.id.find().count() + 1,
userName: String,
psw: String,
email: String ,
active : Boolean
});
module.exports = mongoose.model('User', UserSchema);