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
はい
比較式
Note
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 になります。 クライアント コードによって指定される書き込み確認はすべて無視されます。 詳細については、整合性レベルを使用して可用性とパフォーマンスを最大化する方法に関するページを参照してください。