MongoDB通过收集文档进行迭代

时间:2016-03-16 08:23:43

标签: javascript mongodb relationship

我是MongoDB的新手。我创建了2个集合,一个称为“groups”,用于保存每个组的信息,另一个称为“groupUsers”,它是一个关系集合,用于指示哪些用户连接到一个组。

现在,我想要完成的是首先获取当前用户所属的所有组,然后,在这里它出错了,将组中的信息转换为数组。错误是我只将第一个或最后一个文档放入我的数组中。我知道用户有两组连接到他。

以下是我试图完成此任务的方法:

var playerID = Spark.getPlayer().getPlayerId();

var dataList = Spark.runtimeCollection('groupUsers');
var myGroups = dataList.find({ user: playerID });
var groups = [];

if( myGroups.hasNext() ) {
    var dataList2 = Spark.runtimeCollection('groups');
    var obj = myGroups.next();

    var thisGroup = dataList2.find({ "_id": {"$oid": ""+obj.group}});

    groups.push(thisGroup);
}

Spark.setScriptData("myUserGroups", groups);

希望这是有道理的,有人可以告诉我我做错了什么或指导我朝正确的方向: - )

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您的代码var myGroups = dataList.find({ user: playerID })返回2个组,那么您是否应该多次运行循环来获取dataList2.find({ "_id": {"$oid": ""+obj.group}});

我看到你只执行一次。