【发布时间】:2019-07-10 12:32:29
【问题描述】:
我有这样的架构:
doc:
{
//Some fields
visits:
[
{
userID: Int32
time: Int64
}
]
}
我想首先检查是否存在特定的userID,如果不存在,则使用该userID 和系统time 推送文档,否则只需更新time 值。我知道$push 和$addToSet 都无法做到这一点。同样使用$ 和upsert:true 也不起作用,因为官方documentation 建议说DB 在尝试更新插入时将使用$ 作为字段名称而不是运算符。
请指导我。谢谢
【问题讨论】:
-
看看这是否有帮助。 stackoverflow.com/a/41113069/2683814
-
谢谢。这是一个两步查询。这不能只在一个查询中完成吗?
-
这是我认为可能的唯一方法。对于顶级属性,您可以按照文档的建议进行一次查询。
标签: mongodb mongodb-query