MongoDB查询内部集合

MongoDB查询内部集合,mongodb,Mongodb,我有一个具有以下结构的集合 { "_id" : ObjectId("551f479ffd23fd19d73cca8b"), "305" : { "concept" : "C288", "id" : 305, "code" : "C304", "Display_Name" : "Clearance", "NUI" : "N0000000063", "RxNorm_CUI" : "9865

我有一个具有以下结构的集合

{
    "_id" : ObjectId("551f479ffd23fd19d73cca8b"),
    "305" : {
        "concept" : "C288",
        "id" : 305,
        "code" : "C304",
        "Display_Name" : "Clearance",
        "NUI" : "N0000000063",
        "RxNorm_CUI" : "986535",
        "UMLS_CUI" : "C2825073",
        "kindname" : "PHARMACOKINETICS_KIND",
        "name" : "Clearance [PK]"
    }
}

我想通过在查找操作中匹配RxNorm_CUI值来检索文档。任何人都可以帮助我进行查询。

您可以先创建一个以概念id为键的查询对象。例如:

var query = {},
    concept_id = 305; // this can be a dynamic value
query[concept_id].RxNorm_CUI = "986535";
这将创建查询对象:

query = {
    "305": {
        "RxNorm_CUI": "986535"
    }
};
然后可以将其用作查询:


db.collection.findonequiry

欢迎来到SO。当在这里提问时,通常最好同时发布您迄今为止的尝试以及您面临的问题。对于您的问题,像db.collection.find{305.RxNorm_-CUI:986535}这样的简单查找查询应该会有所帮助。从:MongoDB使用点表示法访问数组的元素并访问嵌入文档的字段。谢谢,这是我在这方面的第一篇文章。我使用的是db.ndf.find{RxNorm_-CUI':'991181',{u-id':0}当我的文档结构如下时,{code:C178,Display_Name:Chemical-components,Name:Chemical-components[Chemical/component],UMLS_-CUI:c085993,NUI:N0000000002,RxNorm_-CUI:991181,kindname:component_-KIND,id:179}但当它的结构如上面所述时,这并没有帮助。问题是我只能访问RxNorm_CUI值,并且必须基于该值进行检索。我不知道。有办法吗?那是不可能的。请看一看和和,因为这是我唯一可以比较的值,所以有没有办法不使用concept_id和RxNorm_CUI来进行比较。@shreekanthk.s如果你有305这样的动态键,那么在你事先不知道这些键的情况下,它们很难查询,这被认为是糟糕的设计实践。因为您只知道字段RxNorm_CUI存在,所以很难查询它,因为它是动态键控父级中嵌套文档的属性。如果您事先知道密钥,那么查询将使用点符号db.collection.findOne{305.RxNorm_CUI:986535};我在回答中提到的方法同样有效。再次感谢