【发布时间】:2020-11-05 17:51:01
【问题描述】:
我有两个集合,用户和用户活动记录。 我的用户集合很简单:
{
"_id" : ObjectId("5f0b29c78f491172cfe8b049"),
"created" : ISODate("2020-07-12T15:18:31.319+0000"),
"lastLogin" : ISODate("2020-07-12T15:18:31.319+0000"),
"name" : {
"first" : "Pedro",
"last" : "Perez"
},
"city" : "New York"
}
还有记录集合:
{
"_id" : ObjectId("5f0fb901b320f5ec21269279"),
"userId" : ObjectId("5f0b29c78f491172cfe8b04a"),
"record" : [
{
"user" : ObjectId("5f0b29c78f491172cfe8b049"),
"name" : "Pedro",
"type" : "like"
},
{
"user" : ObjectId("5f0b29c78f491172cfe8b04b"),
"name" : "Rivaldo",
"type" : "fold"
}
]
}
在这种情况下,userId 是用户文档的外键。
我,作为用户 (Ex _id : 20) 我正在执行查询。我想查询用户集合并查找具有某些字段(城市、姓名等)的用户,以及在他的记录数组中不包含我的任何注册表(用户 _id:20)的用户。
知道怎么做吗?我曾尝试使用 $lookup 和其他运算符,但没有运气。 提前致谢
【问题讨论】:
标签: mongodb collections mongodb-query aggregation-framework lookup