Azure Cosmos DB for MongoDB (4.0 サーバー バージョン): サポートされる機能と構文
[アーティクル]
適用対象: MongoDB
Azure Cosmos DB は、Microsoft のグローバルに分散されたマルチモデル データベース サービスです。 Azure Cosmos DB for MongoDB との通信は、オープン ソースで公開されている任意の MongoDB クライアント ドライバーを使用して行うことができます。 Azure Cosmos DB for MongoDB では、MongoDB ワイヤー プロトコルに従うことにより、既存のクライアント ドライバーを利用できます。
Azure Cosmos DB for MongoDB を使用すれば、使い慣れた MongoDB API を活用できます。グローバル配信、自動シャーディング、可用性や待ち時間の保証、保存時の暗号化、バックアップを始めとする Azure Cosmos DB のエンタープライズ機能をすべて利用できます。
プロトコルのサポート
以下に、サポートされている演算子およびすべての制限事項や例外の一覧を示します。 これらのプロトコルを認識するすべてのクライアント ドライバーは、Azure Cosmos DB for MongoDB に接続できるはずです。 Azure Cosmos DB for MongoDB アカウントを作成する場合、3.6 以降のバージョンのアカウントのエンドポイントが *.mongo.cosmos.azure.com という形式であるのに対し、3.2 バージョンのアカウントのエンドポイントは *.documents.azure.com という形式です。
Note
この記事では、サポートされているサーバー コマンドの一覧のみを示し、クライアント側のラッパー関数については除外しています。 deleteMany() や updateMany() などのクライアント側のラッパー関数は、内部では delete() や update() といったサーバー コマンドを利用しています。 サポートされるサーバー コマンドを利用している関数は、Azure Cosmos DB for MongoDB と互換性があります。
クエリ言語のサポート
Azure Cosmos DB for MongoDB では、MongoDB クエリ言語のコンストラクトが包括的にサポートされます。 以下に、現在サポートされている操作、演算子、ステージ、コマンド、およびオプションの詳細な一覧を示します。
データベース コマンド
Azure Cosmos DB for MongoDB では、次のデータベース コマンドがサポートされます。
$lookup では、サーバー バージョン3.6 で導入された非相関サブクエリ機能をまだサポートしていません。 let および pipeline フィールドで $lookup 演算子を使用しようとすると、let is not supported という文字列を含むメッセージが表示されエラーが発生します。
ブール式
command
サポートされています
and
はい
not
はい
or
はい
型変換式
command
サポートされています
convert
はい
toBool
はい
toDate
はい
toDecimal
はい
toDouble
はい
toInt
はい
toLong
はい
toObjectId
はい
toString
はい
設定式
command
サポートされています
setEquals
はい
setIntersection
はい
setUnion
はい
setDifference
はい
setIsSubset
はい
anyElementTrue
はい
allElementsTrue
はい
比較式
注意
MongoDB 用 API では、クエリ内で配列リテラルを使用した比較式はサポートされていません。
command
サポートされています
cmp
はい
eq
はい
gt
はい
gte
はい
lt
はい
lte
はい
ne
はい
in
はい
nin
はい
算術式
command
サポートされています
abs
はい
add
はい
ceil
はい
divide
はい
exp
はい
floor
はい
ln
はい
log
はい
log10
はい
mod
はい
multiply
はい
pow
はい
sqrt
はい
subtract
はい
trunc
はい
文字列式
command
サポートされています
concat
はい
indexOfBytes
はい
indexOfCP
はい
ltrim
はい
rtrim
はい
trim
はい
split
はい
strLenBytes
はい
strLenCP
はい
strcasecmp
はい
substr
はい
substrBytes
はい
substrCP
はい
toLower
はい
toUpper
はい
テキスト検索演算子
command
サポートされています
meta
いいえ
配列式
command
サポートされています
arrayElemAt
はい
arrayToObject
はい
concatArrays
はい
filter
はい
indexOfArray
はい
isArray
はい
objectToArray
はい
range
はい
reverseArray
はい
reduce
はい
size
はい
slice
はい
zip
はい
in
はい
変数演算子
command
サポートされています
map
はい
let
はい
システム変数
command
サポートされています
$$CURRENT
はい
$$DESCEND
はい
$$KEEP
はい
$$PRUNE
はい
$$REMOVE
はい
$$ROOT
はい
リテラル演算子
command
サポートされています
literal
はい
日付式
command
サポートされています
dayOfYear
はい
dayOfMonth
はい
dayOfWeek
はい
year
はい
month
はい
week
はい
hour
はい
minute
はい
second
はい
millisecond
はい
dateToString
はい
isoDayOfWeek
はい
isoWeek
はい
dateFromParts
はい
dateToParts
はい
dateFromString
はい
isoWeekYear
はい
条件式
command
サポートされています
cond
はい
ifNull
はい
switch
はい
データ型演算子
command
サポートされています
type
はい
アキュムレータ式
command
サポートされています
sum
はい
avg
はい
first
はい
last
はい
max
はい
min
はい
push
はい
addToSet
はい
stdDevPop
はい
stdDevSamp
はい
マージ演算子
command
サポートされています
mergeObjects
はい
データ型
Azure Cosmos DB for MongoDB では、MongoDB BSON 形式でエンコードされたドキュメントをサポートしています。 4\.0 API バージョンでは、この形式の内部使用が強化され、パフォーマンスを向上し、コストを削減します。 4.0 以降を実行しているエンドポイントで作成または更新されたドキュメントは、最適化によってメリットが得られます。
Azure Cosmos DB では、ユーザーとロールはまだサポートされていません。 ただし、Azure Cosmos DB では、Azure ロールベースのアクセス制御 (Azure RBAC) と、Azure portal ([接続文字列] ページ) から取得できる読み取り/書き込みおよび読み取り専用のパスワードとキーがサポートされています。
書き込み確認
一部のアプリケーションでは、書き込み操作中に必要な応答数を指定する書き込み確認が利用されています。 Azure Cosmos DB が背景でレプリケーションを処理する方法により、すべての書き込みが既定で自動的に Quorum になります。 クライアント コードによって指定される書き込み確認はすべて無視されます。 詳細については、整合性レベルを使用して可用性とパフォーマンスを最大化する方法に関するページを参照してください。