2013-04-17 85 views
0

对于下面的命令:MongoDB:有没有一种方法来调整输出?

db.my_items.aggregate({ 
    $match: { 
     // ... 
    } 
},{ 
    $project: { 
     _id: 0, 
     myField: 1 
    } 
}).result.forEach(function(obj) { 
    print(obj.myField) 
}) 

是否有执行从aggregate查询里面的forEach的方法吗?

+0

你想要在查询中实现的foreach是什么?我好像正在输出你正在做的事,你无法从查询中打印到屏幕。 – Sammaye

+0

@Sammaye只是因为我想享受以完全正确的格式返回数据,使'forEach'循环冗余 – BreakPhreak

+0

不幸的是,atm返回必须是BSON文档,所以即使您可以将该foreach放入查询本身它必须将“返回”作为BSON文档返回,这需要依次对其进行处理。 – Sammaye

回答

0

由于MongoDB响应你想做的事情是不可能的。 MongoDB接受输入并用BSON文件回应,这实际上是你在这里得到的回报。

由于即使您可以将forEach放入查询本身,MongoDB也需要返回BSON文档,您将需要额外的返回foreach来迭代BSON文档返回。

+0

所以只是为了记录 - “请”mongo以所需格式返回查询的正确方法是什么?问一个关于如何利用'mongoexport'的例子可以吗?如果没有给出答案并且非常感谢,那我也可以。 – BreakPhreak

+1

@BreakPhreak这取决于你如何使用它,如果你在应用程序中使用它,那么mongoexport可能很难,但如果你使用这个作为管理函数来获取数据,那么mongoexport可以工作 – Sammaye

+0

谢谢!打开以下后续问题:http://stackoverflow.com/questions/16078215/how-to-put-the-following-through-mongoexport – BreakPhreak

相关问题