带有$ref和$id的MongoDB查找查询

带有$ref和$id的MongoDB查找查询,mongodb,mongodb-query,Mongodb,Mongodb Query,我正在努力处理mongodb查询 考虑到这个问题1: db.procedures.find({'procedure.name':'nameOfMyProcedure'}) 查询2: db.procedure_executions.find({'foo.bar':'whatever'}) 查询1返回许多过程对象,这些对象在缩短版本中如下所示: { "_id": ObjectId("5564df8d30041530fb68e1eb"), "_class": "eu.whateve

我正在努力处理mongodb查询

考虑到这个问题1:

db.procedures.find({'procedure.name':'nameOfMyProcedure'})
查询2:

db.procedure_executions.find({'foo.bar':'whatever'})
查询1返回许多过程对象,这些对象在缩短版本中如下所示:

{
    "_id": ObjectId("5564df8d30041530fb68e1eb"),
    "_class": "eu.whatever.model.db.impl.DbProcedureExecutionImpl",
    "procedure": {
        "_class": "eu.whatever.common.model.impl.ProcedureImpl",
        "className": "eu.whatever",
        "name": "nameOfMyProcedure",
        "kind": "METHOD",
        "arguments": []
    },
    "caller": {
        "$ref": "procedure_executions",
        "$id": ObjectId("5564df8d30041530fb68e1e8")
    }
}
查询2的结果对象在查询1中被引用为“调用者”

如何在单个嵌套查询中按引用调用方及其属性(查询2)筛选过程(查询1)

我偶然发现了1美元。是否可以向$in内的另一个集合(过程执行)添加查询?

“我自己也是新来的”,但请尝试:

db.procedures.find(
     {'procedure.name':'nameOfMyProcedure'},
     {'caller.$ref': 'procedure_executions'})
发件人:

注: 当指定以逗号分隔的表达式列表时,MongoDB提供了隐式的
操作。当必须在多个表达式中指定同一字段或运算符时,需要使用带有
$和
运算符的显式


我的问题可能不明确,引用集合“procedure_executions”的名称是固定的,但procedure_execution对象需要满足某些条件(如对象的name属性)。您知道如何解决这个问题吗?不幸的是,这并不是因为它只指定了引用集合的名称。现在这个问题应该更准确了。你知道怎么解决吗?