node.js - 如何从 Mongodb 获取数据
问题描述
我有这个片段:
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);
但它不输出任何东西。
解决方案
console.log
输出的是查询而不是结果。此外,从 Node.js 在 MongoDB 上触发查询的回调格式不需要等待/异步。
假设这Employee
是一个集合对象,以下应该可以工作。在这种情况下避免异步/等待,因为回调函数会处理它。
Employee.findOne({
workEmail: employeeEmail,
},(err,data)=>console.log("data",data);
推荐阅读
- asp.net-core - 用一些数据(用户、发票等)填充数据库
- heroku - 当我将项目上传到 herkou 时如何修复错误(混合内容)
- xamarin - 如何在 xamarin.forms 中为 ios 和 android 编写不同的代码?
- sql - 将列中每个单元格的逗号更改为点
- protractor - 如何使用量角器和摩卡配置浏览器堆栈
- laravel - 在 laravel 5.7 中重新加载页面后如何将数据保留在下拉列表中?
- email - 哪些主要的电子邮件客户端实际上使用了 DNS SRV 自动配置?
- sql-server - 跳过一个条目 WHERE ROW_NUMBER() = X 和相应的条目 = 'Y'
- java - 正则表达式:字符串必须包含单词序列
- hazelcast-jet - HazelcastJet kafka 节流