AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

$inc(更新演算子)

$inc

$inc演算子は、指定された値だけフィールドを増加させます。

次の環境でホストされる配置には $inc を使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のための完全管理サービスです
  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

$inc演算子の形式は次のとおりです。

{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }

<field> を埋め込みドキュメントまたは配列で指定するには、ドット表記を使用します。

MongoDB 5.0 以降、更新演算子では名前が文字列ベースのドキュメントフィールドを辞書順に処理します。数値名のフィールドは、数値順に処理されます。詳細については、「更新演算子の動作」を参照してください。

$inc演算子は正の値と負の値を受け入れます。

フィールドが存在しない場合、$inc はフィールドを作成し、そのフィールドを指定された値に設定します。

$incnull 値を持つフィールドで 演算子を使用すると、エラーが発生します。

$inc は、1 つのドキュメント内のアトミック操作です。

MongoDB5.0 以降、mongod $incなどの更新演算子を空のオペランド式()と併用しても、{ } でエラーが発生しなくなりました。空の更新を使用すると変更は一切されず、 oplogエントリも作成されません(操作は実行されません)。

products コレクションを次のように作成します。

db.products.insertOne(
{
_id: 1,
sku: "abc123",
quantity: 10,
metrics: { orders: 2, ratings: 3.5 }
}
)

次のupdateOne() 操作では、$inc 演算子を使用して次のようにします。

  • "metrics.orders" フィールドを 1 増やします

  • quantity フィールドを -2 増やします(つまり quantity を減らします)

db.products.updateOne(
{ sku: "abc123" },
{ $inc: { quantity: -2, "metrics.orders": 1 } }
)

この操作では、次の結果を返します。

{
_id: 1,
sku: 'abc123',
quantity: 8,
metrics: { orders: 3, ratings: 3.5 }
}
このページを評価