Node.js 在mongodb中获取匹配和不匹配的记录

Node.js 在mongodb中获取匹配和不匹配的记录,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我想列出myCollection中的所有文档,按照匹配的文档应排在第一位,其他文档应排在第二位的顺序排列 db.myCollection.aggregate( [ { $match: { $and: [ { $or: matchArray

我想列出myCollection中的所有文档,按照匹配的文档应排在第一位,其他文档应排在第二位的顺序排列

db.myCollection.aggregate(
    [    {
                    $match: {
                        $and: [
                            {
                                $or: matchArray
                            }
                        ]
                    }
                } ]
);
我在单独的查询中对匹配的文档使用了上面的查询,$nin对不匹配的文档使用了查询。但是我需要一个查询来实现这一点


谁能帮我解决这个问题

您可以将集合中的示例文档添加到piost吗?你的
matchArray
看起来怎么样?例如,matchArray=[{status:“active”},{status:“open”},{status:“Inprogress”}]这里不需要$match。传递状态数组,并在中使用
$生成排序字段顺序。排序desc以在顶部显示匹配的文档,后跟不匹配的文档。类似的东西应该在3.4Perfect中工作
db.col.aggregate([{“$addFields”:{“sortorder”:{“$indexOfArray”:[[“active”,“open”,“Inprogress”],“$status”]}}}},{“$sortorder”:-1},{“$project”:{“sortorder”:0}}])
!工作得很有魅力。谢谢:-)@Veeram