programing

MongoDB에 컬렉션 명명 규칙이 있나요?

batch 2023. 3. 27. 21:08
반응형

MongoDB에 컬렉션 명명 규칙이 있나요?

다음과 같은 데이터베이스 수집 규약이 있는지 알고 싶습니다.

PageVisit또는page_visit.

이러한 표기에 장점과 단점이 있습니까?

일반적인 표기법은 다음과 같습니다.

  • 소문자 이름: MongoDB 컬렉션 이름은 대소문자를 구분하므로 대소문자를 구분하는 문제가 발생하지 않습니다.
  • 복수: 예를 들어 "파일"이 아닌 "파일"로 라벨 붙이는 것이 더 명확합니다.
  • 단어 구분 기호 없음:다른 사람(잘못된)이 단어(사용자명 <-> user_name, first_name <-> first name)를 구분하는 문제를 회피합니다.여기 있는 몇몇 사람들에 따르면 이건 논쟁의 대상이야단, 인수가 컬렉션명으로 한정되어 있는 경우, 저는 그렇게 해서는 안 된다고 생각합니다.)컬렉션명의 가독성을 향상시키고 있는 경우는, 언더 스코어나 카멜을 추가하는 것으로, 컬렉션명의 캐싱이 너무 길거나, 적절한 때에 마침표를 사용하는 것이, 컬렉션 분류의 표준입니다.
  • 상위 상세 컬렉션에 대한 도트 표기법: 컬렉션의 관련성을 나타냅니다.예를 들어, 스키마를 설계한 사람이 잘 해냈다면, 「users.pagevisits」를 삭제할 수 있습니다.

예:

users
pagevisits
users.pagevisits

필드명 표기법은 같은 논리의 일부를 따라야 합니다만, 카멜 케이싱은 매우 일반적입니다.

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

이는 아래 두 호출의 CLI를 사용하는 경우 첫 번째 호출은 비활성 JavaScript이기 때문입니다.

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

기능적으로는 동일하지만, 2번째는 타이핑이 조금 귀찮아 탭이 완성되지 않습니다.

이와는 별도로 장점과 단점은 컬렉션 사용에 따라 달라집니다.어떤 관습을 선택하느냐보다 일관성이 중요합니다.

http://docs.mongodb.org/manual/reference/limits/,의 매뉴얼에서는 컬렉션명은 밑줄('_') 또는 문자('_')로 시작해야 하며, 다음 문자는 사용할 수 없습니다.

  • $를 포함합니다.
  • 빈 문자열(예: " )입니다.
  • null 문자를 포함합니다.
  • 시스템부터 시작합니다.prefix. (내부용으로 예약되어 있습니다.)

그러나 규칙에 따라 "_TWII"와 같이 시작 문자로 '_'를 사용하여 컬렉션을 만들면 컬렉션을 폐기하려고 할 때 문제가 발생합니다.아래의 테스트와 수정 방법을 참조하십시오.컬렉션 '_TWII'는 '사람' 데이터베이스로 생성되었습니다.

> 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
> 

'사람' db에서 _TWII 컬렉션을 삭제하는 단축키:

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

MongoDB에는 몇 가지 명명 규칙이 있습니다.그 중 하나는 데이터베이스 이름이 대소문자를 구분하지 않는다는 것입니다.또한 mongo는 지정되지 않은 경우 컬렉션 이름을 복수합니다."코스"가 "스스로"가 됩니다.

MongoDB에서는 데이터베이스 이름이 대소문자를 구분하지 않기 때문에 데이터베이스 이름은 대소문자를 기준으로만 다를 수 없습니다.

따라서 모든 컬렉션의 이름을 특수 문자 없이 소문자로 지정해 보십시오.특히 Mongoose를 사용하면 많은 오류를 피할 수 있습니다.몽구스는 이상한 질문들을 하고 있어요.

예를 들어, "courses"라는 이름의 컬렉션이 있는 경우 모델을 구성하는 방법은 다음과 같습니다.

const LawModel = mongoose.model(
  "course",
  new mongoose.Schema({
    id: String,
    name: String,

  }),

'코스'가 얼마나 단수인지 알아?Mongoose는 이 값을 복수하기 때문에 빈 배열 "[]"이 표시될 수 있습니다. --> 존재하지 않는 컬렉션을 쿼리하고 있습니다.

모델 이름을 변경하고 모델을 조정해 보십시오.

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

반응형