したがって、コレクション内のドキュメントを構造的に次のように表示する必要があります。
{
"_id": "123",
"systems": [
{
"_id": "1338",
"metrics": [
"TEST"
]
}
]
}
私の目標は、システムおよび/またはメトリックがそれぞれの配列に存在する/存在しないインスタンスに対して、単一の更新/挿入 (upsert=True を使用) を実行できるようにすることです。現在、私の唯一の回避策は、次のように呼び出しを更新することです。
if not collection.find_one({"_id": "123", "systems._id": "1338"}):
collection.update(
{"_id": "123"},
{"$addToSet": {"systems": {"_id": "1338"}}},
upsert=True)
collection.update(
{"_id": "123", "systems._id": "1338"},
{"$addToSet": {"systems.$.metrics": "TEST"}},
upsert=True)
ありがとう