[MONGODB] 몽구스 독특한 자동 증가 필드 만들기
MONGODB몽구스 독특한 자동 증가 필드 만들기
스키마를 감안할 때 :
var EventSchema = new Schema({
id: {
// ...
},
name: {
type: String
},
});
나는 ID가 독특하고 자동 증가 만들고 싶어. 나는 MongoDB의 구현을 실현하기 위해 노력하지만, 바로 몽구스에서 작업을 수행하는 방법을 이해하는 문제가있다.
내 질문은 :에있는 모든 플러그인 등을 사용하지 않고 몽구스의 자동 증가 필드를 구현하는 올바른 방법은 무엇입니까?
해결법
-
==============================
1.여기에 몽구스를 사용하여 자동 증가 필드 구현의 좋은 예이다 :
여기에 몽구스를 사용하여 자동 증가 필드 구현의 좋은 예이다 :
var CounterSchema = Schema({ _id: {type: String, required: true}, seq: { type: Number, default: 0 } }); var counter = mongoose.model('counter', CounterSchema); var entitySchema = mongoose.Schema({ testvalue: {type: String} }); entitySchema.pre('save', function(next) { var doc = this; counter.findByIdAndUpdate({_id: 'entityId'}, {$inc: { seq: 1} }, function(error, counter) { if(error) return next(error); doc.testvalue = counter.seq; next(); }); });
당신은 첫째로 MongoDB의 문서에서 1 단계를 수행해야합니다.
-
==============================
2.당신은이를 사용할 수 있습니다. 이 패키지마다이 고유 한 값을 생성합니다.
당신은이를 사용할 수 있습니다. 이 패키지마다이 고유 한 값을 생성합니다.
패키지 이름 : uniqid
링크 : https://www.npmjs.com/package/uniqid
-
==============================
3.네, 여기에 기능의 "마른 체형은"입니다.
네, 여기에 기능의 "마른 체형은"입니다.
당신은 당신의 몽고 데이터베이스에서 해당 모음이 필요합니다. 당신이 원하는 경우에 그것은 진리의 동시 키 할당 단일 레코드 역할을합니다. 다음 키를 얻기 위해 "원자"작업을 수행하고 심지어 당신이 충돌하지 않고 반환 된 고유 키를 보장됩니다 동시 요청이 있음을 확인하는 방법 몽고의 예를 보여줍니다.
그러나, MongoDB를가 기본적으로 그 메커니즘을 구현하지 않습니다, 그들은 그것을 어떻게하는 방법을 보여줍니다. _id가 고유의 문서 키로서 사용하는 그들은 단지 제공합니다. 나는 이것이 당신의 접근 방식을 명확히 바랍니다.
아이디어를 확장하려면, 가서 정의 된 몽구스 모델이 몽고 제안 구현을 추가하고 당신은 이미 짐작으로, 그것을 사용하는 사전 저장 당신이 작업하는 경우 당신은 항상 ID를 생성 할 수 있도록하는 이벤트 또는 더 나은 아직 사전 초기화 수집 서버 측 당신이 몽고에 저장하기 전에.
-
==============================
4.다른 방법은 몽구스에 의해 주어진 외부 패키지를 사용할 수 있습니다.
다른 방법은 몽구스에 의해 주어진 외부 패키지를 사용할 수 있습니다.
몽구스 순서 플러그인
몽구스 자동 증가 플러그인
-
==============================
5.위의 모든를 무시합니다. 여기에서, 용액은
위의 모든를 무시합니다. 여기에서, 용액은
YourModelname.find().count(function(err, count){ req["body"].yourID= count + 1; YourModelname.create(req.body, function (err, post) { if (err) return next(err); res.json(req.body); }); });
from https://stackoverflow.com/questions/23199482/create-unique-autoincrement-field-with-mongoose by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 인덱스에서 배열 필드의 별개의 집계를 얻기 (0) | 2019.12.18 |
---|---|
[MONGODB] 어떻게 특정 필드를 기반으로 배열에 고유 한 항목을 보장하기 위해 - MongoDB를을? (0) | 2019.12.18 |
[MONGODB] 그것은 정수로하여 MongoDB의 _id 유형을 변경하는 것이 나쁜가요? (0) | 2019.12.18 |
[MONGODB] 몽구스 : ObjectId가 비교가 일관성 실패 (0) | 2019.12.18 |
[MONGODB] 정확한 배열 매치을 찾을 순서는 중요하지 않습니다 MongoDB를 (0) | 2019.12.18 |