【发布时间】:2016-06-05 06:35:29
【问题描述】:
我不擅长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 选项来更新集合,如果它不存在,则会生成新文档,但仍然没有创建文档。非常感谢您的帮助。
【问题讨论】:
-
所以你想将数据推送到 mongoDB 对吗?
-
您可能很难像这样将文档嵌套得这么深。 Mongo 在更新深度嵌套的文档时遇到了问题。
-
您在正确的轨道上,您可以使用
$push或$pull在现有文档中添加或删除内容。 -
哦,谢谢。我忘了告诉这是 mongodb。
-
请显示有效的 BSON 文档而不是 pseudo-document。
标签: javascript node.js mongodb