【发布时间】:2012-09-11 03:33:56
【问题描述】:
我正在使用 nodejs 和 mongodb。 x 是一个包含字符串(某种颜色)的变量。现在,我想创建一个查询(在 nodejs 中),它检索其颜色字段(这是一个字符串列表,在本例中为颜色列表)包含字符串 x 的所有文档。 nodejs应该怎么写呢?
【问题讨论】:
我正在使用 nodejs 和 mongodb。 x 是一个包含字符串(某种颜色)的变量。现在,我想创建一个查询(在 nodejs 中),它检索其颜色字段(这是一个字符串列表,在本例中为颜色列表)包含字符串 x 的所有文档。 nodejs应该怎么写呢?
【问题讨论】:
您的问题有点令人困惑,因为在第一段中您要求的是 OR 关系,但您的示例描述了 AND 关系。
当你想找到所有有红色或绿色的文档时,你必须使用 $in 操作符:
db.collection.find({ colors: { $in:[ "red", "green" ]} });
当您想查找所有具有红色和绿色的文档(可能还有其他文档)时,您必须使用 $all:
db.collection.find({ colors: { $all:[ "red", "green" ]} });
来源:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries
【讨论】: