java - 如何在Java中的mongojack中使用elemmatch

标签 java mongodb mongo-jackson-mapper mongojack

给定一个包含以下内容的 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"}}})

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

关于java - 如何在Java中的mongojack中使用elemmatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980599/

相关文章:

java - Easymock:如何在不可见的情况下模拟调用 protected 方法

node.js - 带有 `strict: false` 的未定义模型字段

mongodb - mongo slice,默认顺序是多少,可以更改吗

java - 用 jackson 以两种不同的方式序列化一个类

java - 如何使用 Jackson ObjectMapper 解析 java 对象的 json 响应

java - 参数是 ArrayList<T> 以及如何获取 T 的类名

java - JSF portlet 桥中的 GenericFacesPortlet 是什么?

java - 在 Apache Spark 上为每个 worker 创建一个单例

javascript - Meteor.js + MongoDB::从深度嵌套数组中检索值

java - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) 不工作