나는 mongodb에 초보자입니다.몽고드 삽입 _id 필드없이 문서 삽입
_id 필드가 자동으로 생성되지 않은 문서를 삽입해야합니다.
필자는 Tenant_id 필드를 고유하거나 "_id"필드를 Tenant_id로 변경해야합니다.
어떻게 수행하나요? 이
Tenant
{Tenant_id: 123, Tenant_info: ...}
나는 mongodb에 초보자입니다.몽고드 삽입 _id 필드없이 문서 삽입
_id 필드가 자동으로 생성되지 않은 문서를 삽입해야합니다.
필자는 Tenant_id 필드를 고유하거나 "_id"필드를 Tenant_id로 변경해야합니다.
어떻게 수행하나요? 이
Tenant
{Tenant_id: 123, Tenant_info: ...}
는 모든 일반 컬렉션을 자동으로 _id 필드를 삽입 : 문서를 삽입 할 때 그래서 당신은 수동으로 _id를 설정할 수 있습니다.
그러나이 동작은 명시 적으로 autoIndexId 매개 변수를 false로 설정하여 컬렉션을 만들 때 변경할 수 있습니다.
> db.createCollection("noautoid", { autoIndexId: false })
{ "ok" : 1 }
그런 다음 _id 필드없이 문서를 삽입 할 수 있습니다. 그러나 일부 드라이버 (예 : 몽고 콘솔)는 자체적으로 _id 필드를 추가합니다. 몽고 콘솔에서이 작업을 수행 할 수 있습니다 autoIndexId 필드에 대한
> db.noautoid._mongo.insert(db.noautoid._fullName, {name: "Jack"})
> db.noautoid.find()
{ "name" : "Jack" }
자세한 정보는 MongoDB documentation에서 찾을 수 있습니다. 이 페이지는 Capped Collections에 관한 것이지만 autoIndexId 필드는 일반 및 출전 된 콜렉션 모두에 공통입니다.
_id
필드와 같은
뭔가 당신이 덮인 컬렉션을 사용하지 않는 한 몽고 문서의 기본 키입니다.
문서 구조 밖으로 생략 할 수없는 필드입니다.
대신 tennant_id
을 _id
으로 사용하는 것이 좋습니다.
모든 MongoDB 문서에는 고유 한 필드 "_id"가 있어야하며 제공하지 않으면 자동으로 생성됩니다.
이 필드의 이름을 바꿀 수 없습니다.
여러분이 선택 사항은 다음과 같습니다
1) (당신이 _id에) 해당 필드에 고유 인덱스를 추가 또는 2) 저장 tenant_id 값이 필요합니다 생성 된 _id 필드를 무시하고 자신의 tenant_id 필드를 사용하여 필드 (이미 고유 인덱스가 있다는 사실을 이용하십시오).
Mongodb는 문서를 삽입 할 때 '_id'필드에 값을 지정하지 않은 경우에만 '_id'필드를 자동으로 생성합니다. 가 존재하지 않는 경우 기본적으로
db.tenants.insert({"_id" : 123, "Tenant_info" : ... })
mongodb 콜렉션에서 _id 필드를 제거 할 수있는 방법이 없습니다. @stephene가 말했듯이, 나는 똑같이 시도했지만 이런 오류가 발생했습니다
> db.noautoid._mongo.insert(db.noautoid._fullName, {name: "Jack"});
2015-06-18T11:22:29.149+0530 E QUERY Error: insert needs 3 args
at (shell):1:20
이 작동하지 않습니다 ... –
더 이상 허용되지 않습니다. _id 필드는 복제에 필요하므로 항상 존재해야합니다. –