我不擅长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选项更新集合会生成新文档(如果它不存在),但仍然没有创建文档。非常感谢一手牌。
答案 0 :(得分:1)
看起来所呈现的结构将把所有用户数据保存在一个文档中。这在未来的处理中可能非常棘手,因为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"})