假设我有以下文件:
{
title: 'Some title',
items: [1,5,9,4]
}
{
title: 'Some title',
items: [5,7]
}
{
title: 'Some title',
items: [1,2]
}
我需要获取项目有5的文档。所以我在mongoose中进行以下查询:
Model.find({items: {$in: [5]}}, function (err, docs) {
// docs.length == 2
});
我得到了它。但我发现,如果我进行以下查询,那么我会得到相同的结果:
Model.find({items: 5}, function (err, docs){
// docs.length == 2
});
在我的案例中使用第二种方法查找文档是否正确?
答案 0 :(得分:2)
如果要查找$in
包含任何一组值的文档,请使用items
;如果您希望items
包含特定值的文档,请使用{items: 5}
之类的简单查询对象。
因此,正如您所发现的,您可以使用$in
来匹配单个值,它更自然地表达为Model.find({items: 5}, ...);