【发布时间】:2022-08-17 00:40:44
【问题描述】:
我有一个像这样的user.expenses 集合
{
userId: ObjectId(\"62f332b93753ac926ff6ac62\"),
expenses: [
{
name: \'electricity\',
assigned: 400,
given: 400,
},
{
name: \'restaurant\',
assigned: 2100,
given: 0,
}
]
}
我会从请求中得到userId 和expenses.name(electricity)。我需要检查user.expenses 集合是否有任何名称为electricity 和assigned 的expenses 文档不等于given。
我使用了$elemMatch 并且可以检查是否有任何嵌入文档的name 是electricity。
db.user.expenses.find({
userId: ObjectId(\'62f332b93753ac926ff6ac62\'),
expenses: {
$elemMatch: {
name: \'electricity\',
},
},
});
编辑
我也尝试使用$where。但它只能应用于顶级文档。
标签: javascript database mongodb