스키마 수준에서 기본 난수를 생성하는 Mongodb는 동일한 숫자를 생성합니다.

다할 가방

mongoose를 ORM으로 사용하여 mongodb를 데이터베이스로 사용하고 있습니다. 내 스키마에 고유 한 booking_id 필드가 있으므로 null을 가질 수 없습니다. 따라서 나는 이와 같은 코드를 디자인했습니다.

  var bookingSchema = new Schema({
    booking_id_customer: {
        type: Number,
        default : Math.floor(Math.random()*900000000300000000000) + 1000000000000000,
        index: { unique: true }
    },

처음에는 완벽하게 작동하지만 두 번째부터는이 중복 오류가 발생합니다.

    { [MongoError: E11000 duplicate key error index: xx.bookings.$booking_id_customer_1 dup key: { : 4.439605615108491e+20 }]
  name: 'MongoError',
  message: 'E11000 duplicate key error index:

나는 그것이 난수를 생성 할 것으로 기대하지만 두 번째로 무엇이 잘못되었는지에 대한 단서가 없습니다.

Robertklep

스키마 생성시 기본값을 한 번만 설정합니다.

새 문서마다 호출되도록하려면 Mongoose가 호출 할 함수로 전환해야합니다.

default : function() {
  return Math.floor(Math.random()*900000000300000000000) + 1000000000000000
}

그러나 코드에 또 다른 문제가 있습니다. 사용중인 값 (900000000300000000000 및 1000000000000000)이를 초과 Number.MAX_SAFE_INTEGER하여 문제가 발생할 수 있습니다.

mongoose.Types.ObjectIdMongoose 및 MongoDB가 (고유 한) 문서 ID를 만드는 데 사용하는 ID 생성기로 사용 하는 것이 좋습니다 .

booking_id_customer : {
  type    : mongoose.Schema.Types.ObjectId,
  default : mongoose.Types.ObjectId,
  index   : { unique: true }
}

또는 _id고유 한 문서 속성을 재사용하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

난수 생성기는 Android에서 동일한 숫자를 생성합니다.

분류에서Dev

pyspark. 난수를 생성하는 변환기는 항상 동일한 숫자를 생성합니다.

분류에서Dev

자바 스크립트 : 난수 생성기는 항상 동일한 숫자를 표시합니다.

분류에서Dev

C 난수 생성기는 때때로 동일한 숫자를 생성합니다.

분류에서Dev

난수 생성기는 for 루프에서 항상 동일한 숫자를 생성합니까?

분류에서Dev

Bash는 숫자 풀에서 난수를 생성합니다.

분류에서Dev

자바 스크립트 : 난수 생성기는 난수를 생성하지 않습니다.

분류에서Dev

내 난수 생성기 함수가 동일한 번호를 생성합니다.

분류에서Dev

kdb를 사용하여 숫자가 목록의 숫자 색인과 동일하지 않아야하는 고유 한 난수 목록을 생성합니다.

분류에서Dev

openMP는 동일한 시드로 다른 난수를 생성합니다.

분류에서Dev

난수는 범위를 벗어난 숫자를 생성합니다 (자바)

분류에서Dev

의사 난수 생성기는 매번 동일한 비트를 반환합니다.

분류에서Dev

내 파이썬 난수는 동일한 결과를 생성합니다

분류에서Dev

시퀀스 생성기를 사용하는 동일한 객체에서 기본 및 외래 키 정의

분류에서Dev

모든 기본 인수가있는 명시 적 생성자는 동일한 클래스의 다른 생성자에서 호출 할 수 없습니다.

분류에서Dev

동일한 난수를 생성하는 Node.js 채팅 봇?

분류에서Dev

선언을 사용하여 생성 된 생성자가 기본 클래스와 동일한 액세스 수준을 갖는 이유는 무엇입니까?

분류에서Dev

자동 생성 된 기본 키 ID를 동일한 테이블의 외래 키 열에 저장하는 방법

분류에서Dev

같은 숫자를 만드는 C 난수 생성기

분류에서Dev

C ++ "<기본 생성자>에서 매개 변수화 된 생성자로 변환하는 데 적합한 생성자가 없습니다.

분류에서Dev

난수에 대한 난수 시드를 생성하는 방법

분류에서Dev

다양한 범위에서 난수를 생성하는 방법

분류에서Dev

4 자리 미만의 난수를 생성하지만 1, 2 또는 3 자리 숫자를 가질 확률은 동일합니다.

분류에서Dev

for 루프의 난수 생성기는 매번 같은 숫자를 제공합니다.

분류에서Dev

일관된 결과를 제공하는 난수 생성기

분류에서Dev

난수 생성기가 동일한 숫자를 생성하지 못하도록하려면 어떻게해야합니까? (Javascript)

분류에서Dev

숫자가 이전과 일치하면 난수를 생성합니다.

분류에서Dev

SQLAlchemy는 생성시 동일한 기본 ID를 푸시합니다.

분류에서Dev

파이썬에서 이전 숫자를 기반으로 의사 난수를 생성하는 방법

Related 관련 기사

  1. 1

    난수 생성기는 Android에서 동일한 숫자를 생성합니다.

  2. 2

    pyspark. 난수를 생성하는 변환기는 항상 동일한 숫자를 생성합니다.

  3. 3

    자바 스크립트 : 난수 생성기는 항상 동일한 숫자를 표시합니다.

  4. 4

    C 난수 생성기는 때때로 동일한 숫자를 생성합니다.

  5. 5

    난수 생성기는 for 루프에서 항상 동일한 숫자를 생성합니까?

  6. 6

    Bash는 숫자 풀에서 난수를 생성합니다.

  7. 7

    자바 스크립트 : 난수 생성기는 난수를 생성하지 않습니다.

  8. 8

    내 난수 생성기 함수가 동일한 번호를 생성합니다.

  9. 9

    kdb를 사용하여 숫자가 목록의 숫자 색인과 동일하지 않아야하는 고유 한 난수 목록을 생성합니다.

  10. 10

    openMP는 동일한 시드로 다른 난수를 생성합니다.

  11. 11

    난수는 범위를 벗어난 숫자를 생성합니다 (자바)

  12. 12

    의사 난수 생성기는 매번 동일한 비트를 반환합니다.

  13. 13

    내 파이썬 난수는 동일한 결과를 생성합니다

  14. 14

    시퀀스 생성기를 사용하는 동일한 객체에서 기본 및 외래 키 정의

  15. 15

    모든 기본 인수가있는 명시 적 생성자는 동일한 클래스의 다른 생성자에서 호출 할 수 없습니다.

  16. 16

    동일한 난수를 생성하는 Node.js 채팅 봇?

  17. 17

    선언을 사용하여 생성 된 생성자가 기본 클래스와 동일한 액세스 수준을 갖는 이유는 무엇입니까?

  18. 18

    자동 생성 된 기본 키 ID를 동일한 테이블의 외래 키 열에 저장하는 방법

  19. 19

    같은 숫자를 만드는 C 난수 생성기

  20. 20

    C ++ "<기본 생성자>에서 매개 변수화 된 생성자로 변환하는 데 적합한 생성자가 없습니다.

  21. 21

    난수에 대한 난수 시드를 생성하는 방법

  22. 22

    다양한 범위에서 난수를 생성하는 방법

  23. 23

    4 자리 미만의 난수를 생성하지만 1, 2 또는 3 자리 숫자를 가질 확률은 동일합니다.

  24. 24

    for 루프의 난수 생성기는 매번 같은 숫자를 제공합니다.

  25. 25

    일관된 결과를 제공하는 난수 생성기

  26. 26

    난수 생성기가 동일한 숫자를 생성하지 못하도록하려면 어떻게해야합니까? (Javascript)

  27. 27

    숫자가 이전과 일치하면 난수를 생성합니다.

  28. 28

    SQLAlchemy는 생성시 동일한 기본 ID를 푸시합니다.

  29. 29

    파이썬에서 이전 숫자를 기반으로 의사 난수를 생성하는 방법

뜨겁다태그

보관