如何在mongodb中使用$ in查询?

时间:2018-09-17 05:46:46

标签: mongodb mongoose mongodb-query

我想在权限=用户时获取记录。

下面是我的同事:

"_id":ObjectId("59177f050c9db20629f4562"),
"profile":
{
    "permissionGroups" : [
      "Admin",
      "Restaurant",
      "Salesperson",
      "User"
    ]
}

仅在权限中获取的是用户。

预先感谢

2 个答案:

答案 0 :(得分:2)

首先,访问配置文件obj中的permissionGroups数组,然后运行一个查询,简单地匹配这样的字符串。除非您在数组中有多个字符串与以下字符串匹配,否则您无需运行$ in:

db.getCollection('collection name').find({"profile.permissionGroups" : "User"})

答案 1 :(得分:0)

我认为$in不是您想要的。 $in针对字段查询数组,也就是说,您搜索permissionsGroup: {$in: ['User', 'Admin']},这将返回所有可以找到UserAdmin的记录。

在这种情况下,您只需搜索permissionsGroups: 'User'。 Mongo非常聪明,可以将permissionGroups识别为数组,并针对该数组中的字段测试给定值。