「n」個のキャンプを持つことができるドキュメント「所有者」があり、キャンプには「インストラクター」があり、インストラクターには「クラス」があります。以前、ネストされた配列でこれを達成しようとしましたが (以下の私の投稿へのリンクを参照)、位置演算子 "$" はそれほど深くネストされないことがわかりました。 MongoDB: 既存の配列への配列の追加
ただし、回避策は配列の代わりにオブジェクト コレクションを使用することであることがわかりました。追加の「キャンプ」を追加するには、「$set」で「更新」を使用する必要があると想定していますが、すべてを行うたびに、挿入された前のキャンプを上書き (更新) します。
以下は、私が達成しようとしている階層構造です。
owner = {
firstName: 'john',
lastName: 'smith',
ownerEmail: 'john.smith@gmail.com',
camps : {
{
name: 'cubs-killeen',
location: 'killeen'
},
{
name: 'cubs-temple',
location: 'temple'
},
instructors : {
{
firstName: 'joe',
lastName : 'black'
},
{
firstName: 'will',
lastName : 'smith'
}
}
}
}
私も次のことを試しています:
db.owners.update({ownerEmail:'john.smith@gmail.com'}, {$set: { camps:{ {name:'cubs-killeen'} } }})
しかし、これは予期しない識別子 { エラーをスローします。
上記の構造を実現するためのいくつかのサンプル mongo コマンドに関するヘルプは、非常に高く評価されます。
V/R
クリス