我正在使用MongoDB存储咖啡信息,并且遇到查询问题。混合MongoDB查询类型(和,或)
我的文档结构是:
{ _id: "Thailand Bok", tags: ["Strong", "Smooth", "Dark"] }
我想创建查询,让我搜索无论是在名称或标记。
因此,如果查询字符串可能是“泰国Bok”或“强”,“平滑”],我想搜索包含_id或每个标签的请求。
如果我是在SQL来思考它可能是这样的:
"WHERE `_id` like 'Not present%' OR ("Strong" IN `tags` AND "Smooth" IN `tags`)"
查询我至今是:
{
$or: [
{ _id: { $regex: '^Not present', '$options': 'i' } },
{
$and: [
{ tags: 'Strong' },
{ tags: 'Smooth' }
]
}
]
}
编辑:更正查询错误和澄清如果_id匹配或标签匹配,它应该工作
这是怎么回事?你需要''和''周围的'''吗? – mindandmedia 2012-04-29 13:06:38