给定一个mongoDB集合,其中包含以下内容:

{
"_id" : ObjectId("561c04bde4b05625eaaaf691"),
"groupName" : "Group1",
"Rights" : [
    "RIGHTS_1",
    "RIGHTS_2"
],
"users" : [
    "User 1"
]}


,{
    "_id" : ObjectId("561c04bde4b05625eaaaf692"),
    "groupName" : "Group2",
    "Rights" : [
        "RIGHTS_3",
        "RIGHTS_4"
    ],
    "users" : [
        "User 2"
]}


我有这样的查询

db.collection.find({Rights:{$elemMatch:{$eq:"RIGHTS_1"}}})


,查找具有与RIGHTS_1匹配的权限的组。

但是,我不确定如何使用MongoJack编写等效查询,因为在MongoJack中,我有类似

DBQuery.elemMatch(collection.RIGHTS_FIELD, DBQUERY_GOES_HERE))


但是DBQuery必须具有一个字段和一个值,并且似乎不允许在数组内进行相等性检查。我检查了其他帖子和文档,但似乎找不到解决方案。 MongoJack支持这种查询吗?感谢您的帮助!

最佳答案

我当时真傻。

db.collection.find({Rights:{$eq:"RIGHTS_1"}}})


是足够的查询并且易于实现

09-28 02:30