如何为 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 } } }
);
我需要 运行 我的 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 } } }
);