如何在Mongoose中查询不同的值,但返回所有的文档?

使用mongoose和它的独特的function…我怎么能结合发现正则expression式和distict,并返回完整的文档?

使用不同的函数https://docs.mongodb.com/manual/reference/method/db.collection.distinct/#options只是返回唯一的字段。

这是我用鹅卵石拼凑起来的

findByTitle: ( title ) => { return new Promise( ( resolve, reject ) => { solutionModel.find( {"Title": { $regex: new RegExp( title ,'i') }}, (err, docs) => { if( err ) return reject( err ); return resolve( _.uniqBy(docs, (e) => { return e.SolutionID; }) ); }); } ); }, 

尾随聚合:

 solutionModel.aggregate( [ { "$match": { "Title": { $regex: new RegExp( 't' ,'i') } }}, // Grouping pipeline { "$group": { "SolutionID": '$SolutionID' }}, // Sorting pipeline { "$sort": { "Title": -1 } }, // Optionally limit results // { "$limit": 5 } ], function(err,docs) { console.log( err ); console.log( docs ); } ); 

导致错误:

MongoError:“SolutionID”字段必须是累加器对象

$ group的语法错误。 请阅读https://docs.mongodb.com/manual/reference/operator/aggregation/group/

例如,按照SolutionID进行分组,将第一个匹配文档存储在“doc”中:

 { "$group": { _id: "$SolutionID", doc: {$first: "$$ROOT"} }