내 필드 중 하나를 기본 키로 설정하고 싶습니다 . 내가 사용하고 MongoDB를을 내 NoSQL에있다.
답변:
_id필드는 mongodb의 기본 키용으로 예약되어 있으며 고유 한 값이어야합니다. 아무것도 설정하지 않으면 _id자동으로 "MongoDB Id Object"로 채워집니다. 그러나 해당 필드에 고유 한 정보를 입력 할 수 있습니다.
추가 정보 : http://www.mongodb.org/display/DOCS/BSON
도움이 되었기를 바랍니다.
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}"}})
이 동작을 달성하는 한 가지 방법은 _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
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
이 링크를 확인하고 _id필드를 자동으로 늘릴 수도 있습니다.
how to set one of my fields as primary key내가 사용자 컬렉션에 키와 USER_EMAIL를 원하지만 어떻게 키와 독특한로 해당 필드를 설정 : 예