我不太会mongodb,所以很难操作子文档。我想要做的是像这样实现地址簿:
{
[user1@mail.com]: [
{
email: 'aaa@example.com',
createdAt: '0000-00-00',
updatedAt: '0000-00-00'
}
],
[user@mail.com]: [
{ ... },
{ ... }
]
}
我将该集合称为“地址簿”,每个项目都是数组类型,包含电子邮件、图像、创建日期等地址信息。
问题是我不知道该怎么做。看起来我需要使用一些运算符,如 $addToSet 或 $push,但我不明白如何正确使用它们。我尝试了什么:
update({
email: 'user1@mail.com'
}, {
$push: {
'address.$email': {
email: target,
createdAt: new Date(),
updatedAt: new Date()
}
}
})
我知道的一件事是使用 upsert 选项更新集合创建新文档(如果它不存在),但文档仍然没有创建。帮帮我将不胜感激。
最佳答案
看起来所呈现的结构会将所有用户数据保存在一个文档中。这在以后的处理中可能会非常棘手,因为 bson 文档有 16MB 的容量限制。
如果您可以考虑更简单的文档形式:
{
_id:bsonId,
email: 'aaa@example.com',
createdAt: '0000-00-00',
updatedAt: '0000-00-00',
name: "unknown"
}
然后更新和维护您的收藏会容易得多。
db.addressbook.update({ email: 'aaa@example.com'},{name:"Happy User"})
关于javascript - 在数组字段中插入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37627792/