gpt4 book ai didi

node.js - .aggregate(...).toArray 不是函数

转载 作者:可可西里 更新时间:2023-11-01 10:46:05 25 4
gpt4 key购买 nike

这是我收到错误的代码。我尝试了多种方法,但总是遇到同样的错误。类型错误:_user10.default.aggregate(...).toArray 不是函数我搜索了其他答案,但它们是 mongodb 而不是 mongoose前 db.collection('users').aggregate任何帮助将不胜感激

import User from './user.model';
import socket from './../../CHATtest/web/socket.js';



getUserInfo({userId,socketId = false}){
let queryProjection = null;
if(socketId){
queryProjection = {
"socketId" : true
}
} else {
queryProjection = {
"username" : true,
"online" : true,
'_id': false,
'id': '$_id'
}
}
return new Promise( async (resolve, reject) => {
try {
//const result = await User.aggregate([{
//await User.aggregate([{
User.aggregate([{
//DB.collection('users').aggregate([{
$match: {
_id : userId
}
},{
$project : queryProjection
}
]).toArray( (err, result) => {
if( err ){
reject(err);
}
socketId ? resolve(result[0]['socketId']) : resolve(result);
});
} catch (error) {
reject(error);
}
});
},

最佳答案

根据 Mongoose 文档,调用 Model.aggregate() 会返回一个聚合对象 ( https://mongoosejs.com/docs/api.html#model_Model.aggregate )。它没有 toArray() 方法,这就是您收到错误的原因。

Aggregate 对象是可链接的,您需要调用 exec() 来结束链接。这将返回一个 promise (https://mongoosejs.com/docs/api.html#aggregate_Aggregate)

关于node.js - .aggregate(...).toArray 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52028101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com