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

2024-03-31

使用猫鼬及其独特的功能...我如何将查找与正则表达式和 distict 结合起来,并返回完整的文档?

使用不同的功能https://docs.mongodb.com/manual/reference/method/db.collection.distinct/#options https://docs.mongodb.com/manual/reference/method/db.collection.distinct/#options仅返回唯一字段。

这就是我用 lodash 拼凑而成的。

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/ https://docs.mongodb.com/manual/reference/operator/aggregation/group/.

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

{ "$group": {
    _id: "$SolutionID",
    doc: {$first: "$$ROOT"}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查询 Mongoose 中的不同值但返回所有文档? 的相关文章

随机推荐