如何从mongoDB中动态创建的Collection中获取数据

时间:2016-06-13 15:47:15

标签: mongodb mongoose

我们有一个集合说TestColl

有像

这样的文件
{
    "_id" : ObjectId("57558a793f50f61400af205c"),
    "title" : "Tile 1",
    "addSites" : true,
    "version" : 11,
    "isMajorVersion" : true
},
  {
    "_id" : ObjectId("654558a793f50f61400af205c"),
    "title" : "Title 2,
    "addSites" : false,
    "version" : 11,
    "isMajorVersion" : true
}

对于TestColl的每个文档,DB中都有一个separete集合

所以我们有另外两个集合,它是根据TestColl的对象Id创建的 57558a793f50f61400af205c654558a793f50f61400af205c

这使得总共三个集合。

寻找一种方式来访问一个集合' 57558a793f50f61400af205c'如果我的查询在单个查询中返回具有_id = 654558a793f50f61400af205c的文档。

约束:我们只需要查询而不创建任何存储过程或函数只是纯粹的mongodb查询

1 个答案:

答案 0 :(得分:2)

您可以使用forEach循环并访问集合中的数据,如下所示:

db.kt.find().forEach(function(doc){
    var colName = doc._id.str;
    var data = db.getCollection(colName).find().toArray();
    printjson(data);
    print(","); // to have array of arrays [[],[],[]]
    })