簡體   English   中英

為什么我不能使用 $cond 向 MongoDB 集合添加新字段? 替換式更新不支持錯誤多更新

[英]Why I can't use $cond to add a new field to a MongoDB collection? error multi update is not supported for replacement-style update

我正在熟悉更多的 MongoDB 命令,現在我遇到了一個錯誤,我不知道應該如何避免它。 我的收藏有很多用戶。 我正在嘗試更新所有用戶,添加一個新字段,如果一個人的注冊日期大於 2020.05.05,則該字段應為 true,否則為 false。 編碼:

db.users.updateMany({},
{
  $set: {
    "fidelity": {
      $cond: {
        if: {
          $gte: [
            "$registration",
            newDate("2020-05-05")
          ],
          then: true,
          else: false
        }
      }
    }
  }
}) 

我得到的錯誤: 在此處輸入圖像描述

$cond 是一個聚合管道運算符,但您使用的是簡單的更新。 結果 $cond 不被識別為運算符,而是一個簡單的嵌套鍵,即您正在嘗試編寫

{$cond: {
        if: {
          $gte: [
            "$registration",
            newDate("2020-05-05")
          ],
          then: true,
          else: false
        }
      }}

作為保真度字段的值。 然后你被告知你不能有一個以 $ 開頭的字段名,這是一個 MongoDB 限制。

  • 如果要在更新中使用聚合管道,則必須將管道作為數組提供。 請參閱文檔以了解正確的語法。
  • 否則刪除 $cond ,您需要找出一種不同的方式來表達您想要的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM