のは、我々は、以下の形状の書類を含むMongoのコレクションを持っていると仮定しましょう:モンゴアレイ更新またはプッシュ
{
_id: '1234',
letters: ['a', 'b', 'c', 'd'],
}
時にはletters
フィールドはnull
かもしれません。 letters
配列が非空である場合、それは単一のクエリ
- に次のように達成することが可能である場合、私は疑問に思って
、「X」に最初の項目を設定します。
letters
フィールドを['x']
に設定してください。もちろん
、できるだけ簡単なアイデアがletters
フィールドがまだ上記の動作の結果はとなります設定されていないため、場合
db.collection.update({_id: '...'}, {$set:{'letters.0':'x'}});
を動作しません:
{
// ...
letters: {
'0': 'x'
}
}
があります私の意図はオブジェクトではなく配列を作成することです。
Su私はすでにそこにいくつかの要素がある場合、私はそれが動作しないだろうと私は最初のものを更新したいと思います。 –
ああ、私はあなたの質問を得る、あなたは指定された位置を更新したい、または配列を作成します。そういうわけで、$ set演算子をあなたの質問に置きます。 docs:https://docs.mongodb.com/manual/reference/operator/update-array/私はそのための演算子を見つけることができませんでした。$ - https://docs.mongodb.com/manual/参照/演算子/更新/位置の言及 "挿入が挿入されたドキュメントのフィールド名として$を使用するため、位置演算子$をアップサート操作で使用しないでください。"これはあなたが記述したのと同じ動作なので、私はあなたが1つのコマンドでそれを行うことはできないと思います。 –