Node.js 如何在mongoose中的一个和条件下找到模型的不同字段?

Node.js 如何在mongoose中的一个和条件下找到模型的不同字段?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我希望找到一个模型中同时满足这两个条件的不同字段的列表 从文件: 我发现我可以在Model.distinct()中传递一个条件数组作为第二个参数。但这一系列条件似乎是通过“或”操作联系起来的。也就是说,如果任何一个条件满足,则会列出该字段 但我只想在两个条件都满足的情况下得到这个场 当我使用: Model.distinct(field).and(arrayOfConditions).exec(callback); 然后我得到一个错误: TypeError: Cannot call method

我希望找到一个模型中同时满足这两个条件的不同字段的列表

从文件:

我发现我可以在
Model.distinct()
中传递一个条件数组作为第二个参数。但这一系列条件似乎是通过“或”操作联系起来的。也就是说,如果任何一个条件满足,则会列出该字段

但我只想在两个条件都满足的情况下得到这个场

当我使用:

Model.distinct(field).and(arrayOfConditions).exec(callback);
然后我得到一个错误:

TypeError: Cannot call method 'map' of undefined
    at SchemaBoolean.handleArray (/Users/user1/node_modules/mongoose/lib/schema/boolean.js:56:14)

distinct
不会返回功能完整的
Query
对象,因此您可以这样做:

Model.distinct(field, {$and: arrayOfConditions}).exec(callback);

不加评论地投下一票。。!为什么?Model.distinct始终返回查询对象。Model.distinct依次调用Query.distinct,后者返回一个查询对象。然而,你的答案很有效。。还有这个:Model.distinct(字段,{$and:arrayOfConditions},回调)