如何在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"} }