首页 > 解决方案 > 搜索返回一个空数组

问题描述

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

这是架构。

我该怎么办?

标签: mongodbexpressmongoose

解决方案


一个错误是您将_id已经以字符串形式出现的 . 转换为带有 . 的字符串.toString()。如果您的字段是数据库中的对象 ID,则应将其转换为 ObjectId。

id2 = mongoose.Types.ObjectId(req.user._id);

推荐阅读