Node.js Mongoose.select在与Azure函数一起使用时不是函数

Node.js Mongoose.select在与Azure函数一起使用时不是函数,node.js,mongodb,azure,mongoose,azure-functions,Node.js,Mongodb,Azure,Mongoose,Azure Functions,我试图在azure函数中使用mongoose.select运算符,但它一直在说TypeError:db.collection(…).findOne(…).select不是db.collection.find.toArray的函数 它在控制台中返回用户的数据,但不使用进行筛选。选择 为什么呢 var MongoClient = require('mongodb').MongoClient; var Post = require('./model/post'); var mongoose = req

我试图在azure函数中使用mongoose.select运算符,但它一直在说
TypeError:db.collection(…).findOne(…).select不是db.collection.find.toArray的函数
它在控制台中返回用户的数据,但不使用
进行筛选。选择

为什么呢

var MongoClient = require('mongodb').MongoClient;
var Post = require('./model/post');
var mongoose = require('mongoose');
module.exports = async function (context, req) {

  let currentPage = 1;


  MongoClient.connect(process.env.CosmosDBConnectionString, async (err, client) => {




    let send = response(client, context);

    if (err) send(500, err.message);

    let db = client.db(process.env.dbName);


    await db.collection('listings').find(
      {
        $and: [
          { winnerHasBeenNotified: false },
          { auctionEndDateTime: { $lte: Date.now().toString() } }
        ]
      }
    )

      .toArray((err, result) => {
        console.log("result");
        console.log(result);


        if (result) {

          for (let i = 0; i < result.length; i++) {

            db.collection('users').findOne(
              {

                _id: mongoose.Types.ObjectId(result[i].bidderId)

              }
            ).select("notificationBy").toArray((err, result) => {
              console.log("USER RESULT!");
              console.log(result);
            });


          }


        }




        if (err) send(500, err.message);
        send(200, JSON.parse(JSON.stringify(result)));



      });
  });




};

function response(client, context) {
  return function (status, body) {
    context.res = {
      status: status,
      body: body
    };

    client.close();
    context.done();
  };
}
var MongoClient=require('mongodb')。MongoClient;
var Post=要求('./型号/Post');
var mongoose=require('mongoose');
module.exports=异步函数(上下文,请求){
设currentPage=1;
MongoClient.connect(process.env.CosmosDBConnectionString,异步(err,client)=>{
let send=响应(客户端、上下文);
如果(错误)发送(500,错误消息);
设db=client.db(process.env.dbName);
等待db.collection('listings')。查找(
{
美元及:[
{winnerHasBeenNotified:false},
{auctionEndDateTime:{$lte:Date.now().toString()}
]
}
)
.toArray((错误,结果)=>{
控制台日志(“结果”);
控制台日志(结果);
如果(结果){
for(设i=0;i{
log(“用户结果!”);
控制台日志(结果);
});
}
}
如果(错误)发送(500,错误消息);
send(200,JSON.parse(JSON.stringify(result));
});
});
};
函数响应(客户端、上下文){
返回功能(状态、主体){
context.res={
状态:状态,
身体:身体
};
client.close();
context.done();
};
}
find()
返回一个游标,该游标有一个
选择方法。检索单个文档,如果未提供回调,则返回承诺


如果您试图仅获取“notificationBy”字段,请尝试将
字段
选项传递给findOne。

一次可能会有多个获胜者返回。我们的想法是使用计时器azure函数,每10分钟获取所有已返回的获奖者
winnerHasBeenNotified=false
。然后我将向这些用户发送一封电子邮件,并将DB中的值更新为true。当你说字段选项时,我对你的意思有点困惑。你能举个例子吗?