如何在猫鼬中添加条件?

时间:2017-10-23 12:04:34

标签: node.js mongodb

我需要一个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'

1 个答案:

答案 0 :(得分:-1)

使用findOne查询,它只提供一个结果,例如

float