我需要一个mongoose查询,只选择一个记录或条件。有一组博客。其中一些是英文或法文。某些博客是重复的,就像他们拥有相同的内容但使用不同的语言。但他们有相同的' group_id'。
如果我根据某些条件过滤博客,例如'类别'只有拥有' userLanguage'的博客应该表明。但如果没有,请显示另一种语言。如何为此生成mongoose查询?
db.find($and:[{category:'Health'},{$or: [{language: 'en'},{language:'fr'}]}])
但是,如果两个' en'和' fr'存在,我只需要'' en'或者' fr'。如何在一个查询中实现此功能?
这些是一些示例文档,
"{_id: '1', category_id: 'xyz', language:'en', group_id: 'aaa'} ",
"{_id: '2', category_id: 'xyz', language:'fr', group_id: 'aaa'}",
"{_id: '3', category_id: 'xyz' language: 'en', group_id: 'bbb'}",
"{_id: '4', category_id: 'xyz', language: 'fr', group_id: 'ccc'}"
我要求category_id:' xyz'和语言:' en'。所以结果应该是,
"{_id: '1', category_id: 'xyz', language:'en', group_id: 'aaa'} ",
"{_id: '3', category_id: 'xyz' language: 'en', group_id: 'bbb'}",
"{_id: '4', category_id: 'xyz', language: 'fr', group_id: 'ccc'}"
我有一组不同的group_id = [' aaa',' bbb'' ccc']。所以情况就像是,
group_id: $in:group_id $$ language should be 'en' if not 'fr'
答案 0 :(得分:-1)
使用findOne查询,它只提供一个结果,例如
float