mongoose

时间:2017-05-27 02:30:00

标签: node.js mongodb mongoose

每次在数据库中插入值时,我想创建一个String + number(该数字必须是自动增量)。 在Schema中可以做到吗?或者,在将值插入数据库之前,我是否需要这样做?

'question' - > String后跟autoincrement number

    var random = [{
        question: 'question1'
    },{
        question: 'question2'
    },{
        question: 'question3'
    },{
        question: 'question4'
    }];

    const RandomSchema = new Schema({
        question: {
            type: String,
            unique: true
        }
    })

2 个答案:

答案 0 :(得分:1)

Mongodb中的自动增量字段的工作方式与它们在RDBMS中的工作方式完全不同。涉及的开销更多。从来没有,创建一个自动字段是solved problem。还有一个第三方mongoose-autoincrement包可以让它变得更容易。

从中扩展。你的问题也解决了。因为

  

字符串部分将始终相同

只需使用字符串连接在显示时将“问题”添加到自动增量字段。

答案 1 :(得分:0)

这是我使用HTML special characters @ e4c5指出的,而不使用第三方软件包。 定义add.js如下:

db.counters.insert(
   {
      _id: "itemid",
      seq: 0
   }
)

function getNextSequence(id) {
   var ret = db.counters.findAndModify(
          {
            query: { _id: id },
            update: { $inc: { seq: 1 } },
            new: true
          }
   );

   return ret.seq;
}

db.randoms.insert(
   {
     question: "question"+getNextSequence("itemid"),
   }
)

db.randoms.insert(
   {
     question: "question"+getNextSequence("itemid"),
   }
)

启动mongod实例后,执行mongo < add.js