我有一个查询,搜索ItemA
个文档,其中有一个字段itemB
。该查询返回所有ItemA
个文档,但仅返回具有itemB
的{{1}}个属性。
image.deleted = false
与此有关的问题是,如果对于某个特定的const itemAs = await ItemA.aggregate([
{ $match: { "itemB.deleted": false } },
{
$project: {
itemB: {
$filter: {
input: "$itemB",
as: "itemB",
cond: { $eq: ["$$itemB.deleted", false] }
}
},
date: 1
}
}
]);
,所有itemB
文档都已被删除,并将其设置为true
,则此查询将不会返回该ItemA
。无论ItemA
已删除多少ItemA
设置为itemB
,都应始终返回true
。
我的模式:
const itemASchema = new Schema({
itemBs: [
{
url: {
type: String,
default: null
},
deleted: {
type: Boolean,
default: false
},
}
],
date: {
type: Date,
default: Date.now
}
});
如何解决此查询,以使其不仅返回设置为itemB
的{{1}}元素,而且始终返回false
文档,即使其所有{{1} }设置为ItemA
?