我不知道如何构建执行此操作的查询:
我有一个用户集合,每个用户都有一个字段userdata,其中包含String数组。 每个字符串是另一个集合中其他文档(已经看到的新闻)的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'
的新闻。
谢谢