0

假设我有以下文件:

{
  title: 'Some title',
  items: [1,5,9,4]
}

{
  title: 'Some title',
  items: [5,7]
}

{
   title: 'Some title',
   items: [1,2]
}

我需要获取项目有 5 的文档。所以我在猫鼬中进行了以下查询:

Model.find({items: {$in: [5]}}, function (err, docs) {
   // docs.length == 2
});

我明白了。但是我发现如果我进行以下查询,那么我会得到相同的结果:

Model.find({items: 5}, function (err, docs){
   // docs.length == 2
});

在我的案例中使用第二种方法查找文档是否正确?

4

1 回答 1

2

$in当您要查找items包含一组值中的任何一个的文档时使用;如果您想要items包含特定值的文档,请使用简单的查询对象,例如{items: 5}.

因此,正如您所发现的,虽然您可以使用$in匹配单个值,但它更自然地表示为Model.find({items: 5}, ...);

于 2012-10-19T19:17:10.127 回答