兼容性与限制

PolarDB PostgreSQL版文档兼容功能提供了对文档数据库语法与驱动的高度兼容。但在计划使用或进行数据迁移前,请务必详细阅读本章节,以充分了解其兼容范围、使用限制和行为差异,确保您的业务能够平滑、稳定地运行。

适用范围

  • 兼容版本:兼容MongoDB 4.0及以上版本的驱动和客户端。对于MongoDB 4.0以下版本中已废弃的命令(如mapreduce),本功能不予支持,需要升级客户端或驱动版本。

  • 错误码PolarDB PostgreSQL文档数据兼容功能使用与MongoDB相同的错误名称和代码,但具体的错误信息有时可能不同。

  • 字符集PolarDB PostgreSQL文档数据兼容功能的集合名称必须是有效的UTF-8,而MongoDB支持无效的UTF-8。

支持驱动与客户端工具

支持多数主流语言的MongoDB官方驱动和常用客户端工具。

官方驱动支持

语言

驱动/库

Python

pymongo

Go

mongo-go-driver

JavaScript(Node.js)

mongodb/Mongoose

Java

MongoDB Java

Rust

mongodb

C

mongo-c-driver

C++

mongo-cxx-driver

PHP

mongodb(扩展)+ library(用户态)

Ruby

mongo

Scala

mongodb-scala-driver

Swift

mongo-swift-driver

客户端工具支持

可使用标准MongoDB客户端工具连接并管理数据库。

  • mongosh

  • Studio 3T

命令兼容性矩阵

下表列出了各类MongoDB命令的支持情况。

聚合命令

命令

支持状态

aggregate

支持

count

支持

distinct

支持

查询与写入命令

命令

支持状态

find

支持

insert

支持

update

支持

delete

支持

findAndModify

支持

getMore

支持

bulkWrite

不支持

运维命令

命令

支持状态

create

支持

drop

支持

createIndexes

支持

dropIndexes

支持

listCollections

支持

listDatabases

支持

listIndexes

支持

collMod

支持

compact

支持

reIndex

支持

renameCollection

支持

currentOp

支持

killCursors

支持

getParameter

支持

cloneCollectionAsCapped

不支持

convertToCapped

不支持

dropConnections

不支持

killOp

不支持

logRotate

不支持

setParameter

不支持

shutdown

不支持

诊断命令

命令

支持状态

buildInfo

支持

collStats

支持

connectionStatus

支持

dataSize

支持

dbStats

支持

explain

支持

ferretDebugError

支持

getCmdLineOpts

支持

getLog

支持

hostInfo

支持

listCommands

支持

ping

支持

serverStatus

支持

validate

支持

whatsmyuri

支持

connPoolStats

不支持

logApplicationMessage

不支持

profile

不支持

会话命令

命令

支持状态

abortTransaction

支持

commitTransaction

支持

endSessions

支持

killAllSessions

支持

killSessions

支持

refreshSessions

支持

startSession

支持

killAllSessionsByPattern

不支持

用户管理命令

命令

支持状态

createUser

支持

dropAllUsersFromDatabase

支持

dropUser

支持

updateUser

支持

usersInfo

支持

grantRolesToUser

不支持

revokeRolesFromUser

不支持