mongodb - 搜索返回一个空数组
问题描述
router.get('/direcciones', isAuthenticated, async (req, res) => {
let id = req.user._id
let id2 = id.toString()
await Dir.find({
uid: {
$elemMatch: { _id: id2}
}
}, async (err, dir) => {
console.log(dir);
res.render('direcciones', {dir: dir, id: id})
});
});
当我按 ID 搜索时,我没有得到任何结果。
_id:ObjectId("5ed71f27e391a332b8f4aea8")
active:true
dir:"asdasd, Pariahuanca, Los Olivos, Peru"
dirname:"aeds"
uid:Object
_id:ObjectId("5ed6ef2251c32527a03bf1ca")
__v:0
这是架构。
我该怎么办?
解决方案
一个错误是您将_id
已经以字符串形式出现的 . 转换为带有 . 的字符串.toString()
。如果您的字段是数据库中的对象 ID,则应将其转换为 ObjectId。
id2 = mongoose.Types.ObjectId(req.user._id);
推荐阅读
- php - 在 WP 插件页面中加密密码的最佳方法
- node.js - .Node 文件的 Webpack 配置
- regex - 如何在工作表中使用正则表达式来编号(在单元格中)以字母开头的所有新行?
- node.js - 代理无法将请求从一个端口发送到另一个端口
- angular - Angular 12 全局异常处理
- ios - 将 SonarQube 实施到 iOS 项目在 run-sonar-swift.sh 上出现错误
- android - 传递 LiveData而不是 ViewModel时,DataBinding 不更新
- xml - Ansible - 获取属性等于值的 XML 元素
- amazon-redshift - 使用 redshift 查询 AWS-Glue 元数据(列注释和表描述)
- xcode - 保存在 Firebase 中的购物车 - 订单处理