Mongodb聚合$ out动态集合名称

时间:2015-12-23 22:26:29

标签: mongodb aggregation-framework

我正在寻找一种方法将日期合并到Mongodb聚合管道的$ out阶段创建的集合名称中。
像这样的东西(但它不起作用)

db.sales.aggregate([{$project: {account_number:1}},    
 {$out: "new_collection" + Date()}]);

这会返回以下错误;

  

第2阶段的规范包含无效的JSON:意外字符' +'在第1行,第18行

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

Date()返回日期的长字符串版本,其中可以包含无法在集合名称中使用的字符。例如:

'Wed Dec 23 2015 22:47:53 GMT-0600 (Central Standard Time)'

所以你可能想要使用像Date.now()这样的东西,它会返回像1450932419617这样的ms计数,它将在集合名称中起作用。

{$out: "new_collection" + Date.now()}

为您提供有效的收藏名称,例如'new_collection1450932419617'