如何查询MongoDB以查找包含特定对象数组的所有记录?

时间:2017-05-04 03:54:15

标签: mongodb-query

我正在我的Angular MEAN堆栈应用程序中实现标记功能,因此想要查询数据库以检索具有一个或多个这些标记的所有对象(在本例中为#34; NFR" s)(&# 34;标记"对象)。因此,我有NFR对象,可能包含Tag对象数组。我已经尝试了许多MongoDB查找查询,尽管存在标记记录,但这些查询都不会返回任何内容。 以下是一些代码片段(用于NFR和Tag的Mongoose模式defs)。非常感谢提前:-)。 凯蒂

  • NFR架构:

    import * as mongoose  from "mongoose";
    import {Tag} from "../../app/main/models/tag";
    
    let NFR = new mongoose.Schema({
         category: String,
         subCategory: String,
         nfr: String,
         acceptanceTest: String,
         source: String,
         status: String,
         creationDate: Date,
         createdBy: String,
         changeLog: String,
         tags: [{
             type: Tag
         }]
    });
    
  • 标记架构

    import * as mongoose  from "mongoose";
    
    let Tag = new mongoose.Schema({
         name: String,
         source: String,
         creationDate: Date,
         _id: String
    });
    

在数据库中,要搜索的NFR对象包含两个Tag对象,通过对象ID引用screenshot of database

1 个答案:

答案 0 :(得分:0)

感谢Veeram,我不得不在NFR中移动Tag mongoose类,以便正确创建相关的Tag对象(我现在可以搜索)。这是一个糟糕的黑客,不知道为什么它不能以正确的方式工作,但它现在会做。