【问题标题】:Mongodb aggregation $out dynamic collection namemongodb聚合$out动态集合名
【发布时间】:2016-03-30 10:05:12
【问题描述】:

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

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

这会返回以下错误;

第 2 阶段的规范包含无效的 JSON:第 1 行第 18 列出现意外字符“+”

有谁知道我该怎么做?

【问题讨论】:

  • 创建查询时只需插入 $out 集合名称。
  • “它不起作用”是什么意思?您收到任何错误消息吗?还是只是什么都没有发生?
  • 我添加了示例语法中的错误消息。

标签: mongodb aggregation-framework


【解决方案1】:

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

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

因此,您可能想改用 Date.now() 之类的东西,它会返回类似 1450932419617 的毫秒计数,这将在集合名称中起作用。

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

为您提供一个有效的集合名称,例如 'new_collection1450932419617'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-27
    • 2014-09-22
    • 2014-05-27
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    相关资源
    最近更新 更多