如何为 MongoDB 中的用户存储大量消息?

How to store large amount of messages for users in MongoDB?

我需要 运行 我的 cron 脚本到每个用户的 update/insert(更新插入)线程(电子邮件)。我的集合结构如下:

{ 
    "id" : ObjectId("57d7fc5fd34228c47059"), 
    "id" : "userid", 
    "primaryEmail" : "user@mail.com", 
    "threads_list" : [

    ]
},
{ 
    "_id" : ObjectId("57d7346a73d128c47059"), 
    "id" : "uderid", 
    "primaryEmail" : "user2@mail.com", 
    "threads_list" : [

    ]
}
...

我想将线程存储到 threads_list。但是我也想更新它们,如果它们已经存在,或者如果它自上次插入后没有改变就跳过它,就像我会为每个用户创建集合并使用 updateOne 方法更新存储在里面的电子邮件一样 {upsert:true} 参数。

如有必要,我不介意将 threads_list 属性更改为对象类型。

如何正确完成?

试试这个代码

db.collection('users').update(
          { _id:user.id, 
            $set: {'primaryEmail': newEmail} 
          },
          { $addToSet: { 'threads_list': { $each: resp.labels } } }
        );