【发布时间】:2020-04-25 01:54:58
【问题描述】:
我不知道如何构建执行此操作的查询:
我有一个用户集合,每个用户都有一个字段 userdata,其中包含一个字符串数组。 每个字符串都是另一个集合中其他文档(已经看过的新闻)的ObjectID的字符串。
我需要知道这个用户的用户名,来执行一个查询来获取所有新闻,但不是那些已经看过的新闻。
我认为$nin 运算符可以满足我的需要,但我不知道如何将它与来自另一个集合的数据混合。
Users
user
username: String
userdata: Object
news: Array of String
News
news1
_id: ObjectID
news2
_id: ObjectID
示例:
Users: [{
username: 'mario',
userdata: {
news: ['10', '11']
}
}]
News: [{
_id: '10',
content: 'hello world10'
},{
_id: '11',
content: 'hello world11'
},{
_id: '12',
content: 'hello world12'
}]
将username(作为字符串)'mario' 传递给查询,我需要查询集合新闻并只返回带有_id '12' 的那个。
谢谢
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework