Men*_*des 5 casting aggregate mongoose mongodb aggregation-framework
考虑以下聚合:
\n\nlet getUsersWithNoPersonsPromise = () => {\n\n let pipeline = [\n {\n $lookup: {\n from: "persons",\n localField: "id",\n foreignField: "person_id",\n as: "persons_users"\n }\n },\n {\n $match: {\n "persons_users:0": {\n $exists: false\n }\n }\n }\n ];\n\n\n return User.aggregate(pipeline).exec();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n如何将$match
结果转换为 UserModel 类型?I\xc2\xb4m 在其上获取普通的 javascript 对象,并且我希望收到 mongoose User 类型对象。
您可以使用聚合查询的结果,并通过迭代结果数组来简单地实例化新对象,如下所示(假设您正在使用异步等待);
let people = await getUsersWithNoPersonsPromise()
people = people.map(p => new Person(p))
Run Code Online (Sandbox Code Playgroud)