【问题标题】:Is there a 'contains' functionality on a collection of ObjectId property of a domain object for withCriteria?对于 withCriteria,域对象的 ObjectId 属性集合上是否有“包含”功能?
【发布时间】:2013-05-20 07:30:16
【问题描述】:

我有一个订阅域对象,它有一个 ObjectId 列表作为其属性之一,比如“订阅”。我正在使用 Grails 2.1.2 和 MongoDB。

class Subscription {
    ObjectId id
    List<ObjectId> subscribers = [] as List<ObjectId>

    static mapWith = "mongo"
}

我正在寻找类似的东西

def c = Subscription.withCriteria {
    contains("subscribers", specificId)
}

有没有办法做到这一点?

注意:我知道 this very same question,但提供的对该问题的答案不适用于 ObjectId 列表类型的属性。

【问题讨论】:

    标签: mongodb grails createcriteria


    【解决方案1】:

    grails criteria docs。尝试这样使用:

    def c = Subscription.withCriteria {
        subscribers{
            eq("id",specificId)
        }
    }
    

    【讨论】:

    • 这不起作用,引发以下运行时错误:MongoDB 不支持联接查询。 Stacktrace 如下:消息:MongoDB Line 不支持加入查询 |方法->> 117 |在 org.grails.datastore.mapping.mongo.query.MongoQuery$2 中处理
    • 之前最好说是mongo(=
    • 对不起,我会编辑问题!请参阅我上次编辑的问题,其中添加了订阅类和订阅者属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多