猫鼬查询以检查数组是否包含元素

时间:2020-08-25 10:32:55

标签: node.js mongodb mongoose

我有这样的记录。

map[
Description:this belong to A community 
Moderators:[] 
Name:A 
SourceName:SourceA 
State1:State1 
State2:State2
]

我想尝试使用或不使用试图删除的角色的用户。为此,我编写了一个查询,但始终返回一个空数组。

{
                "photo": "default.jpg",
                "roles": [
                    {
                        "_id": "5f44d77be830263684eb7914",
                        "name": "Test",
                        "__v": 0
                    }
                ],
                "_id": "5f44d2f4ff04993b40684bf9",
                "name": "Test User",
                "email": "test@gmail.com",             
                "id": "5f44d2f4ff04993b40684bf9"
}

这些是我在指南针中检查过的查询,但它始终是一个数组

const check = await User.find({roles: {$elemMatch: {_id: req.params.id}}});

我的用户文档的角色字段是这样的。

{"roles._id":"5f44d77be830263684eb7914"}
{roles: $elemMatch: {_id: "5f44d77be830263684eb7914"}}

如果有任何方法可以强制执行完整性约束,例如如果用户尝试删除依赖于其他记录的记录,那么我们不应允许用户删除该记录。

0 个答案:

没有答案