mongodb - 我们可以在 findAll 中给出多个东西吗

标签 mongodb grails

我有一个 Employee 域,其中包含 Professional_id。 Professional域里面有个叫level的字段。现在我想提取同一级别的所有员工。如何编写查询?

我想要类似的东西

def emp = Employee.findAllByProfessional_id(Professional.findAllByLevel(5))

员工域-:

class Employee {
    String username
    String password
    String reg_no
    String designation
    String personal_id
    String professional_id
    static constraints = {
        username(unique:true)
        password(password:true)
    }
}

专业领域-:

class Professional {
    int level
    String bank_account_no
    String qualification
    String salary
    String department
    String performance
    String basic_pay
    String fax_no
    String employee_awards
    String job_duration
    String work_shift

    static constraints = {
        bank_account_no(unique:true)
    }
}

最佳答案

Professional.findAllByLevel(5) 将返回专业对象列表,但 Employee.findAllByProfessional_id() 正在等待字符串列表,因为属性 professional_id 是一个Employee 类中的字符串。因此,您尝试做的事情将行不通。

尝试这样做:

def emp = Employee.findAllByProfessional_id(Professional.findAllByLevel(5).id.toString())

无论如何,您的域似乎没有正确定义。您不需要像在 Employee 类中那样指定 professional_id 字段。您应该使用 belongsTo、hasMany、hasOne 指定关联。

关于mongodb - 我们可以在 findAll 中给出多个东西吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682403/

相关文章:

maven-2 - Maven 不解析本地 Grails 插件

grails - 当我希望在许多相似的领域执行相同的测试时,如何遍历Grails Spock测试中的测试?

grails - 哪个接口(interface)/抽象类适用于 grails 域类行为?

PHP Mongo - 查找集合中的最后一个对象

java - Spring Boot Data MongoDB - 存储库为空

mongodb - 从 mongo 集合中的数组中删除条目

mongodb - 我将如何在 MongoDB 中设计这个模式?

grails - 是否有像Grails的身份验证插件那样的Devise(Rails)?

grails - 我可以在 Grails 的接口(interface)类中使用 JAXRS 注释(例如 @Produces)吗

node.js - 使用 $push 时如何验证数组长度?