gpt4 book ai didi

mongodb - 查找包含相似嵌套对象的多个 MongoDB 结果

转载 作者:可可西里 更新时间:2023-11-01 10:07:43 26 4
gpt4 key购买 nike

我有一些用户关联了多个社交网络帐户。在某个时候,一些用户已经能够使用这些相同的网络创建多个帐户,我正试图让它们全部重新合并。

我的结构是这样的:

users: [
{
accounts: [
{
type: "twitter", uid: 123123
},
{
type: "facebook", uid: 123123
}
]
}
]

例如,我有多个用户使用同一个 Twitter 帐户,我想将他们全部归还。我使用这样的查询

 db.users.find({"accounts.type": "twitter", "accounts.uid" : 123123});

尽管我 100% 确定不止 use 包含此 ID,但无论如何我只得到一个结果。我也试过

db.users.find({"accounts: {"type": "twitter", "uid": 123123}});

我可能在这里遗漏了什么?它导致了一些奇怪的问题,所以我想尽快解决这个问题,谢谢!

最佳答案

你的查询很好,在 shell 中试试:

db.users.save({accounts: [{type: "twitter", uid: 12345},{type: "facebook", uid: 67890}]})
db.users.save({accounts: [{type: "twitter", uid: 12345},{type: "facebook", uid: 67890}]})
db.users.count({'accounts.type':"twitter", 'accounts.uid':12345})
2

如果您的问题在验证后仍然存在,请发布两个完整的示例文档和您的查询,因为它们出现在 mongo 日志 (setProfilingLevel(2)) 中。

此外,为了完整起见,您可以尝试:

db.users.count({accounts:{$elemMatch:{type: "twitter", uid: 12345}}})

它做的完全一样,但稍微更“正确”

关于mongodb - 查找包含相似嵌套对象的多个 MongoDB 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com