ネストされた配列を更新していますが、間違った要素が更新されます

ルークチャドウィック

apiKeysユーザーの下にオブジェクトのネストされた配列として保存されているリストがあります。更新クエリを使用してキーを取り消そうとしていますが、クエリが間違ったレコードを更新しています(最初のisActive:true配列要素のようです)。


db.users.update({
          $and: [
            { _id: <TheUserId> },
            { 'apiKeys._id': <TheKeyId> },
            { 'apiKeys.isActive': true } // This means the revoked date can't be changed
          ] 
        },
        {
          $set: {
            'apiKeys.$.isActive': false,
            'apiKeys.$.revokedAt': new Date()
          }
        })

不思議なことに、 { _id: <TheUserId> } (これは私の側の誤った印象かもしれませんが)削除すればうまくいくよう です。

編集:私はこれについて間違っていました

turivishal

このアプローチは間違っています。両方のプロパティがいずれかのオブジェクトで独自の条件を検索し、2番目のプロパティの条件に依存しません。両方のプロパティが同じオブジェクトにあることを指定する必要があります。

  { 'apiKeys._id': <TheKeyId> },
  { 'apiKeys.isActive': true }

$ elemMatchを使用して、両方のフィールドが同じオブジェクトにあることを指定する必要があります

db.collection.update({
  _id: <TheUserId>,
  apiKeys: {
    $elemMatch: {
      _id: <TheKeyId>,
      isActive: true
    }
  }
},
{
  $set: {
    "apiKeys.$.isActive": false,
    "apiKeys.$.revokedAt": new Date()
  }
})

遊び場

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RethinkDBネストされた配列の要素を更新します

分類Dev

ネストされた配列要素が存在する場合は更新します

分類Dev

日付クエリに基づくネストされた配列の更新が正しく機能しない可能性があります(または、sthが間違っている可能性があります。)

分類Dev

配列mongodb内のネストされた配列を更新しています

分類Dev

配列の間違った要素が入力されています

分類Dev

ネストされた配列マングース内の要素を更新しています

分類Dev

ネストされた配列の要素を不変に更新します

分類Dev

mongodbjavaのネストされた配列値を更新します

分類Dev

深くネストされた配列mongodbを更新します

分類Dev

this.setStateのネストされた配列を更新します

分類Dev

arrayFiltersでネストされた配列を更新します

分類Dev

mongodbのネストされた配列を更新します

分類Dev

MongoDBでネストされた配列を更新します

分類Dev

間違ったDBレコードが更新されています

分類Dev

Rails:ネストされた属性パラメータ内の配列列の引数の数が間違っています(0の場合、1..2が必要です)

分類Dev

forループの後、返された配列が間違っています

分類Dev

Vue.jsの間違った変数が更新されます

分類Dev

間違った変数が更新されます

分類Dev

フォーカスされた部分が間違ったチャートを示しています(NVD3)

分類Dev

RailsがPolymorphic_urlとSTIを使用してネストされたリソースに間違ったパスを生成しています

分類Dev

ElasticSearch:配列内のネストされたドキュメントを更新しています

分類Dev

MongoDBでネストされた配列ドキュメントを更新しています

分類Dev

D3でネストされたネストされた要素を終了して更新します

分類Dev

ネストされたbigqueryjson要素を更新します

分類Dev

配列の間違った値が表示されます

分類Dev

Railsのネストされたコントローラーのパスが間違っています

分類Dev

ReactsetStateでネストされた配列要素を更新する

分類Dev

Pythonが間違ったリストに追加されていますか?

分類Dev

間違ったスクリプトURLが要求されています

Related 関連記事

  1. 1

    RethinkDBネストされた配列の要素を更新します

  2. 2

    ネストされた配列要素が存在する場合は更新します

  3. 3

    日付クエリに基づくネストされた配列の更新が正しく機能しない可能性があります(または、sthが間違っている可能性があります。)

  4. 4

    配列mongodb内のネストされた配列を更新しています

  5. 5

    配列の間違った要素が入力されています

  6. 6

    ネストされた配列マングース内の要素を更新しています

  7. 7

    ネストされた配列の要素を不変に更新します

  8. 8

    mongodbjavaのネストされた配列値を更新します

  9. 9

    深くネストされた配列mongodbを更新します

  10. 10

    this.setStateのネストされた配列を更新します

  11. 11

    arrayFiltersでネストされた配列を更新します

  12. 12

    mongodbのネストされた配列を更新します

  13. 13

    MongoDBでネストされた配列を更新します

  14. 14

    間違ったDBレコードが更新されています

  15. 15

    Rails:ネストされた属性パラメータ内の配列列の引数の数が間違っています(0の場合、1..2が必要です)

  16. 16

    forループの後、返された配列が間違っています

  17. 17

    Vue.jsの間違った変数が更新されます

  18. 18

    間違った変数が更新されます

  19. 19

    フォーカスされた部分が間違ったチャートを示しています(NVD3)

  20. 20

    RailsがPolymorphic_urlとSTIを使用してネストされたリソースに間違ったパスを生成しています

  21. 21

    ElasticSearch:配列内のネストされたドキュメントを更新しています

  22. 22

    MongoDBでネストされた配列ドキュメントを更新しています

  23. 23

    D3でネストされたネストされた要素を終了して更新します

  24. 24

    ネストされたbigqueryjson要素を更新します

  25. 25

    配列の間違った値が表示されます

  26. 26

    Railsのネストされたコントローラーのパスが間違っています

  27. 27

    ReactsetStateでネストされた配列要素を更新する

  28. 28

    Pythonが間違ったリストに追加されていますか?

  29. 29

    間違ったスクリプトURLが要求されています

ホットタグ

アーカイブ