Programing

MongoDB에 이름 컬렉션에 대한 규칙이 있습니까?

lottogame 2020. 11. 5. 07:38
반응형

MongoDB에 이름 컬렉션에 대한 규칙이 있습니까?


다음과 같은 데이터베이스 컬렉션에 대한 규칙이 있는지 알고 싶습니다.

PageVisit또는 page_visit.

이러한 표기법의 장점 / 단점이 있습니까?


일반적인 규칙은 다음과 같습니다.

  • 소문자 이름 : MongoDB 컬렉션 이름은 대소 문자를 구분 하므로 대소 문자 구분 문제를 방지 합니다 .
  • 복수형 : 어떤 컬렉션을 복수형 으로 분류하는 것이 더 분명합니다. 예를 들어 "파일"이 아닌 "파일"
  • 단어 구분 기호 없음 : 다른 사람이 (잘못) 단어를 구분하는 문제를 방지합니다 (사용자 이름 <-> user_name, first_name <-> firstname). 이것은 여기 주변의 몇몇 사람들에 따르면 논쟁의 여지가 있지만, 주장이 컬렉션 이름과 분리되어 있다면 그렇게해서는 안된다고 생각하지 않습니다;) 밑줄이나 낙타를 추가하여 컬렉션 이름의 가독성을 높이는 경우 컬렉션 이름이 너무 길거나 컬렉션 분류의 표준 인 마침표를 적절하게 사용해야합니다.
  • 더 높은 세부 컬렉션에 대한 점 표기법 : 컬렉션이 어떻게 관련되어 있는지를 나타냅니다. 예를 들어, 스키마를 설계 한 사람들이 좋은 일을했다면 "users"를 삭제 한 경우 "users.pagevisits"를 삭제할 수 있다고 합리적으로 확신 할 수 있습니다.)

예 :

users
pagevisits
users.pagevisits

필드 이름 규칙은 (반드시) 동일한 논리를 따라야하지만 낙타 케이스는 상당히 일반적입니다.


컬렉션 이름에 하이픈을 사용하지 마십시오.

그 이유는 아래 두 호출의 cli를 사용하는 경우 첫 번째가 잘못된 JavaScript이기 때문입니다.

db.foo-bar.find();
db['foo-bar'].find();

둘 다 기능적으로 동일하지만 두 번째는 입력하기가 약간 더 귀찮고 탭 완성이 아닙니다.

그 외에도 장단점은 컬렉션 사용에 따라 다릅니다. 어떤 규칙을 선택하는 것보다 일관성을 유지하는 것이 더 중요합니다.


에서 http://docs.mongodb.org/manual/reference/limits/ , 수동 상태는 컬렉션의 이름은로 시작해야한다고 밑줄 ( '_') 또는 편지 쓰기 문자 및 수 없습니다 :

  • $를 포함합니다.
  • 빈 문자열 (예 : "")이어야합니다.
  • 널 문자를 포함합니다.
  • 시스템에서 시작하십시오. 접두사. (내부 용으로 예약 됨)

그러나 규칙을 따르고 "_TWII"와 같이 시작 문자가 '_'인 컬렉션을 생성하면 컬렉션을 삭제하려고 할 때 문제가 발생합니다. 아래 테스트 및 수정 방법을 참조하십시오. 컬렉션 '_TWII'는 'people'db에 생성되었습니다.

> show collections
_TWII
employees
system.indexes
> db._TWII.drop()
2015-02-19T16:34:56.738-0800 TypeError: Cannot call method 'drop' of undefined

> use admin
switched to db admin

> db.runCommand({renameCollection:"people._TWII",to:"people.TWII"})
{ "ok" : 1 }
> use people
switched to db people
> show collections
TWII
employees
system.indexes
> db.TWII.drop()
true
> show collections
employees
system.indexes
> 

'people'db에서 _TWII 컬렉션을 삭제하는 바로 가기 :

> db.createCollection('^TWII')
{ "ok" : 1 }
> db.getCollection('^TWII').drop()
true

참고URL : https://stackoverflow.com/questions/9868323/is-there-a-convention-to-name-collection-in-mongodb

반응형