使用cuid替换mongoose ObjectIds

时间:2016-10-05 15:47:58

标签: node.js mongoose mongoose-populate

我正在考虑使用cuid(https://www.npmjs.com/package/cuid)来替换mongoose自然生成的目标,这样我模型中的_id就会得到一个cuid而不是生成的。{/ p >

问题:

  1. 你是如何实现这个目标的
  2. 是否有任何副作用
  3. 这会如何影响人口?
  4. 1简单如下:

    import mongoose from 'mongoose';
    import cuid from 'cuid';
    
    const Schema = mongoose.Schema;
    
    export const departmentSchema = new Schema({
      _id: { type: 'String', default: cuid(), required: true },
      name: { type: 'String', required: true },
      sector: { type: 'String', required: true },
    });
    

    ...

    由于

1 个答案:

答案 0 :(得分:0)

我使用以下内容成功使用CUID而不是_id:

import mongoose from 'mongoose';
import cuid from 'cuid';

const gymSchema = new Schema({
  _id: { type: 'String', required: true, default: cuid },
}):

不同之处在于我只是传递函数,而你调用函数。我起初犯了这个错误......

我可以确认人口按预期工作,但我无法回答的问题是是否有任何副作用。而且,更重要的是,为什么你会想要这样做。 mern.io使用CUID而不是ObjectId,但是他们在另一个字段中执行起来很笨拙。我不知道为什么ObjectId不合适。任何人吗?