搜索过滤器嵌套文档 mongodb

时间:2021-04-26 11:30:17

标签: node.js mongodb mongoose

我正在尝试在猫鼬中做一些事情而不会重复聚合。我有以下功能来获取带分页的表格:

async queryOrdersTable(_, { search, page, limit }) {
            try {
                let searchQuery = {};
                if (search) {
                    searchQuery = {
                        $or: [
                            { onr: { $regex: search, $options: 'i' } },
                            { kund: { namn: { $regex: search, $options: 'i' } } },
                        ]
                    }
                }
                const results = await Order.find(searchQuery)
                    .populate('kund', 'namn KundNr')
                    .limit(limit)
                    .sort({ onr: -1 })
                    .collation({ locale: "en_US", numericOrdering: true })
                    .skip((page - 1) * limit)
                const count = await Order.countDocuments(searchQuery)

                return {
                    rows: results, totalPages: Math.ceil(count / limit), currentPage: page
                };
            } catch (error) {
                console.log(error)
            }
        }

文档结构如下:

const Order ={
onr: "123A123,
kund:{
_id: ObjectId(23927342734assd123)
}

然后是昆德:

kund:{
_id: ObjectId(23927342734assd123)
namn: "Exempel 1"
}

我想要做的是,让搜索变量通过 kund namn 查询和过滤文档,但是却给了我一个错误(因为我猜它在查询时尚未填充。任何提示?

0 个答案:

没有答案
相关问题