所以我希望我的集合中的文档在结构上看起来像这样:
{
"_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)
谢谢