[mongodb] MongoDB에서 기본 키를 설정하는 방법은 무엇입니까?

내 필드 중 하나를 기본 키로 설정하고 싶습니다 . 내가 사용하고 MongoDB를을 내 NoSQL에있다.



답변

_id필드는 mongodb의 기본 키용으로 예약되어 있으며 고유 한 값이어야합니다. 아무것도 설정하지 않으면 _id자동으로 “MongoDB Id Object”로 채워집니다. 그러나 해당 필드에 고유 한 정보를 입력 할 수 있습니다.

추가 정보 : http://www.mongodb.org/display/DOCS/BSON

도움이 되었기를 바랍니다.


답변

다른 방법은 Indexes컬렉션을 만들고 고유한지 확인하는 것입니다.

다음 링크 에서 더 많은 것을 찾을 수 있습니다

실제로 이것은 매우 간단하고 구현하기 쉽습니다.


답변

mongodb에서 _id 필드는 기본 키용으로 예약되어 있습니다. Mongodb는 객체에 정의하지 않은 경우 내부 ObjectId 값을 사용하고 성능을 보장하기 위해 인덱스도 생성합니다.

그러나 _id에 고유 한 값을 입력 할 수 있으며 Mongodb는이를 대신 사용합니다. 여러 필드를 기본 키로 사용하려는 경우에도 객체를 사용할 수 있습니다.

{ _id : { a : 1, b: 1} }

키 순서 (예제에서 a와 b)가 중요한 이러한 ID를 만들 때주의해야합니다. 키를 바꾸면 다른 개체로 간주됩니다.


답변

RDBMS처럼 생각하면 기본 키를 만들 수 없습니다. 기본 기본 키는 _id입니다. 그러나 고유 인덱스를 만들 수 있습니다 . 예는 다음과 같습니다.

db.members.createIndex( { "user_id": 1 }, { unique: true } )

db.members.insert({'user_id':1,'name':'nanhe'})

db.members.insert({'name':'kumar'})

db.members.find();

출력은 다음과 같습니다.

{ “_id”: ObjectId ( “577f9cecd71d71fa1fb6f43a”), “user_id”: 1, “name”: “nanhe”}

{ “_id”: ObjectId ( “577f9d02d71d71fa1fb6f43b”), “name”: “kumar”}

동일한 user_id를 삽입하려고하면 mongodb에서 쓰기 오류가 발생합니다.

db.members.insert({'user_id':1,'name':'aarush'})

WriteResult ({ “nInserted”: 0, “writeError”: { “code”: 11000, “errmsg”: “E11000 중복 키 오류 수집 : student.members 인덱스 : user_id_1 dup 키 : {: 1.0}”}})


답변

간단하게 사용할 수 있습니다.

db.collectionName.createIndex({urfield:1},{unique:true});


답변

이 동작을 달성하는 한 가지 방법은 _id기본 키로 처리하려는 사용자 지정 필드를 기반으로 값을 (MongoDB의 기본 키용으로 예약 된) 필드로 설정하는 것입니다.
employee_id, MongoDB에서 문서를 만들 때 기본 키로 원하는 경우 ; _id와 동일한 값을 할당 합니다 employee_id.


답변

이것은 기본 키를 만드는 구문입니다.

db. <collection> .createIndex (<key and index type specification>, {unique : true})

데이터베이스에 student 라는 이름의 컬렉션이 있고 문서에는 기본 키를 만드는 데 필요한 student_id 라는 이름의 키가 있습니다. 그러면 명령은 다음과 같아야합니다.

db.student.createIndex({student_id:1},{unique:true})

학생 컬렉션에 중복 값을 추가 하여이 student_id 가 기본 키로 설정 되었는지 확인할 수 있습니다 .

자세한 정보는이 문서를 선호하십시오 https://docs.mongodb.com/manual/core/index-unique/#create-a-unique-index