擅长:python、mysql、java
<p>克里斯蒂安的回答有正确的论据,所以我就不谈那部分了(对他的回答投了赞成票)。</p>
<p>不过,你也会问避免重复等问题</p>
<p>这里的关键是确保更新查询的条件部分特定于所需的级别。upsert(或update)只与传递给它的条件一样好。如果upsert找不到符合条件的文档,它将插入一个新文档;如果找到传入的条件,update将只执行$push(或指定的任何更新)(如果找到多个文档,也可以进行多次更新)。</p>
<p>在您的情况下,标准部分是:</p>
<pre><code>UserCampaign = {
"id": campaign['id'],
"name": campaign['name']
}
</code></pre>
<p>确保这部分是唯一的,你会很好-如果这可以匹配多个文件,那么你将有重复的。</p>