Cloud Firestore Enterprise 버전에만 해당합니다. |
이 페이지에서는 MongoDB 호환성을 갖춘 Cloud Firestore와 MongoDB 간의 동작 차이점을 설명합니다.
MongoDB 버전에 따라 지원되는 기능의 분류는 다음을 참고하세요.
연결 및 데이터베이스
- 각 연결은 MongoDB 호환성을 갖춘 단일 Cloud Firestore 데이터베이스로 제한됩니다.
- 데이터베이스에 연결하기 전에 데이터베이스를 만들어야 합니다.
이름 지정
데이터 모델의 일부 이름 지정에는 다음 차이점이 적용됩니다.
컬렉션
__.*__
와 일치하는 컬렉션 이름은 지원되지 않습니다.
필드
__.*__
와 일치하는 필드 이름은 지원되지 않습니다.- 빈 필드 이름은 지원되지 않습니다.
문서
- 최대 문서 크기는 4MiB입니다.
- 필드의 최대 중첩 깊이는 20입니다. 각 배열 및 객체 유형 필드는 전체 심도에 1단계를 추가합니다.
_id
_id
(최상위 필드) 문서는 ObjectId, 문자열 또는 64비트 정수여야 합니다. 다른 BSON 유형은 지원되지 않습니다.- 빈 문자열('')과 64비트 0(0L)은 지원되지 않습니다.
값
- JavaScript, Symbol, DBPointer, Undefined BSON 유형은 지원되지 않습니다.
날짜
- 날짜 값은
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
에 속해야 합니다.
Decimal128
NaN
, 양의 무한대, 음의 무한대 값은 쓰기 시 표준화됩니다.- Decimal128에 대한 산술 연산은 지원되지 않습니다.
Double
NaN
값은 쓰기 시 표준화됩니다.
정규 표현식
- 정규 표현식 옵션은 유효해야 하며('i', 'm', 's', 'u' 또는 'x') 반복 없이 알파벳순으로 제공되어야 합니다.
쿼리
- 일반 정렬 순서(명시적 정렬이 없는 쿼리)가 삽입 순서 또는
_id
오름차순에 의한 순서와 일치하지 않습니다.
집계
- 집계는 250단계로 제한됩니다.
$merge
및$out
단계는 지원되지 않습니다. 지원되는 단계와 연산자의 전체 목록은 명령어 섹션을 참고하세요.
쓰기
- 달러 기호('$')로 시작하는 이름의 문서는
update
또는findAndModify
의 삽입/업데이트(upsert) 기능을 사용하여 만들 수 없습니다. - 드라이버가 이 기능을 사용하려고 시도하지 않도록 연결 문자열에
retryWrites=false
를 포함하세요(또는 드라이버에 적합한 메서드 사용). 재시도 가능한 쓰기는 지원되지 않습니다.
거래
- 스냅샷 트랜잭션은 지원되지 않습니다.
- 트랜잭션은 잠금과 함께 비관적 동시 실행 제어를 사용합니다. 잠금 경합을 방지하려면 트랜잭션에서 읽는 데이터 양을 제한하세요.
색인
- 와일드 카드 색인은 지원되지 않습니다.
- 고유 인덱스는 지원되지 않습니다.
- MongoDB 호환성을 갖춘 Cloud Firestore는
_id
에 색인을 자동으로 만들지는 않지만_id
값이 컬렉션 내에서 고유하도록 보장합니다. - 멀티 키가 사용 설정되지 않은 색인은 쓰기 작업을 기반으로 멀티 키 색인으로 자동 변경되지 않습니다. 색인을 만들 때 멀티 키를 사용 설정해야 하며 이 옵션은 변경할 수 없습니다.
읽기 문제
majority
읽기 문제 수준만 지원됩니다.
쓰기 문제
w: 'majority'
및w: 1
쓰기 문제만 지원됩니다.
읽기 환경설정
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
,nearest
읽기 문제만 지원됩니다.
오류
- 오류 코드와 메시지는 MongoDB 호환성을 갖춘 Cloud Firestore와 MongoDB 간에 다를 수 있습니다.
명령어
다음 동작 차이는 특정 명령어에 적용됩니다.
- 다음 표에 나열되지 않은 명령어는 지원되지 않습니다.
maxTimeMS
는 대부분의 명령어에서 허용되지만 무시될 수 있습니다.
쿼리 및 쓰기
명령어 | 지원되지 않는 필드 |
---|---|
|
|
|
|
|
|
|
|
|
delete 문 내:
|
|
|
|
|
|
|
|
|
|
(없음) |
트랜잭션 및 세션
명령어 | 지원되지 않는 필드 |
---|---|
|
|
|
|
|
(없음) |
관리
명령어 | 지원되지 않는 필드 | 참고 |
---|---|---|
|
|
제공된 경우 filter 는 비워야 합니다. |
|
|
제공된 경우 authorizedCollections 는 false여야 합니다. |
|
|
|
|
|
이 명령어는 노옵스(no-ops)입니다. 제공된 경우 capped 는 false여야 합니다. |
다음 단계
- 빠른 시작: 데이터베이스 만들기 및 연결 실행하기
- 지원되는 기능의 전체 목록은 지원되는 MongoDB 데이터 유형, 드라이버, 기능을 참고하세요.