mongoose 如何设置自增字段?

发布于 2022-09-06 15:55:15 字数 202 浏览 22 评论 0

var room_schema = new mongoose.Schema({
    username: { type: String },
    room_num:{type:Number},
    room_name:{type:String}
})

room_num需要唯一Number字段,不自增也行,需要保证唯一性,求解~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

喜你已久 2022-09-13 15:55:16

自问自答吧,想了一个取巧的办法,在save之前查询所有数据,返回的是一个数组,数组的length本身就是自增,所以直接让他等于数组length就可以了,不知道数据量大了之后会不会影响性能,水平有限,先这样吧....

var room_schema = new mongoose.Schema({
    username: { type: String },
    room_num:{type:Number},
    room_name:{type:String}
})
var room_model = mongoose.model('room', room_schema);
room_model.find({},function(mst,msg){
                var room_num = msg.length
                var room = new room_model({
                    username:doc.username,
                    room_name:req.query.room_name,
                    room_num:room_num
                })
                room.save();
            })

clipboard.png

执着的年纪 2022-09-13 15:55:16
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;
    });

MongoDB 自增id (jarvis1024@gitee.com)

一江春梦 2022-09-13 15:55:16

自增好像是没有,但设置唯一索引肯定能保证唯一性

尬尬 2022-09-13 15:55:16

自增只能自己实现
MongoDB 自动增长

风透绣罗衣 2022-09-13 15:55:16

MongoDB没有自增字段。
你可以这样,插入之前查询一下最新的room_num,查询之后+1就是本条数据的room_num

嘿嘿嘿 2022-09-13 15:55:16

当初做博客的时候也遇到过这样的问题。。可以试试用时间戳啊。。

(new Date()).getTime();

不过注意,这个得到的字符串太长了,在数据库中是以double数据类型存储的

幸福丶如此 2022-09-13 15:55:16

试试GUID,最后几位是时间戳的话很难重复

完美的未来在梦里 2022-09-13 15:55:16

现在有更好的解决思路了吗??

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文