我有以下代码段:
const slackProfiles = await Promise.all(
checkinsDetails.map(async ({ employeeEmail }) => {
const employeeData = Employee.findOne({
workEmail: employeeEmail,
});
console.log('employee ', employeeData);
const slackId = employeeData ? employeeData.slackId : '';
当我在控制台中记录员工数据时,我会得到以下数据:
employee Query {
_mongooseOptions: {},
_transforms: [],
_hooks: Kareem { _pres: Map {}, _posts: Map {} },
_executionCount: 0,
mongooseCollection:
NativeCollection {
collection: null,
opts:
{ bufferCommands: true,
capped: false,
'$wasForceClosed': undefined },
name: 'employees',
collectionName: 'employees',
conn:
NativeConnection {
base: [Mongoose],
collections: [Object],
models: [Object],
config: [Object],
replica: false,
options: null,
otherDbs: [],
relatedDbs: {},
states: [Object],
_readyState: 0,
_closeCalled: false,
_hasOpened: false,
'$internalEmitter': [EventEmitter],
_listening: false },
queue: [],
buffer: true,
emitter:
EventEmitter {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined } },
model:
{ [Function: model]
hooks: Kareem { _pres: [Map], _posts: [Map] },
base:
Mongoose {
connections: [Array],
models: [Object],
modelSchemas: [Object],
options: [Object],
_pluralize: [Function: pluralize],
Schema: [Function],
model: [Function],
plugins: [Array] },
modelName: 'Employee',
...
当我在await
之前附加EMployee.findOne({})
时,控制台中没有任何记录。我也尝试过
Employee.findOne({
workEmail: employeeEmail,
},(err,data)=>console.log("data",data);
但不输出任何内容。
答案 0 :(得分:0)
console.log
输出的是查询而不是结果。另外,从Node.js在MongoDB上触发查询的回调格式也不需要等待/异步。
假设Employee
是一个收集对象,那么以下操作应该有效。在这种情况下,只需避免使用异步/等待,因为回调函数会处理它。
Employee.findOne({
workEmail: employeeEmail,
},(err,data)=>console.log("data",data);
答案 1 :(得分:0)
您应该尝试一下,我认为这对您有用。
Employee.findOne({workEmail: employeeEmail}).then(err, result) {console.log(result)};