如何在mongodb的加总框架中包含字段为空的文档?
我有一个问题,我使用聚合框架搜索文档,其中一个文档的字段“place”设置为null。因此,它不会使用我的当前代码从数据库返回。我的代码是:如何在mongodb的加总框架中包含字段为空的文档?,mongodb,Mongodb,我有一个问题,我使用聚合框架搜索文档,其中一个文档的字段“place”设置为null。因此,它不会使用我的当前代码从数据库返回。我的代码是: router.get("/search", async (req, res) => { const items = await Item.aggregate([ { $lookup: { from: "places", localField: "
router.get("/search", async (req, res) => {
const items = await Item.aggregate([
{
$lookup: {
from: "places",
localField: "place",
foreignField: "_id",
as: "placeData",
},
},
{
$unwind: "$placeData",
},
{
$match: {
$or: [
{ title: new RegExp(req.query.searchQuery, "i") },
{ sku: new RegExp(req.query.searchQuery, "i") },
{ "place.title": new RegExp(req.query.searchQuery, "i") },
],
},
},
{
$project: {
title: 1,
sku: 1,
place: {
$ifNull: ["$placeData", "Digital"],
},
},
},
]);
res.send(items);
});
我想出来了。我稍微调整了“放松”阶段,如下所示:
{
$unwind: {
path: "$placeData",
preserveNullAndEmptyArrays: true,
},
},
我认为这是故意的。是否确实要在数据库中存储空值?我想您应该在使用此服务的服务中执行空检查?我有items collection,其中一些项目可以是数字的,也可以不是数字的。如果是数字,则位置为空。您可以使用
$lookup
的替代语法指定。