我正在使用聚合框架将数据从一个集合迁移到另一个集合。以下是代码示例:
db.oldCollection.aggregate([{$out : "newCollection"}])
oldCollection
中的newCollection
索引不会在newColleciton
中复制。
但有没有什么方法可以将它直接移动到同一个MongoDB主机上的不同数据库中,并且有任何选项可以阻止覆盖/替换集合中的整个数据。我的意思是保留对SELECT
T1.[LocationName],
Monday,
LastMonday,
LastMonday-Monday AS [Difference]
FROM
(
SELECT
CASE
WHEN GROUPING([LocationName]) = 1
THEN 'Total'
ELSE [LocationName]
END [LocationName],
COUNT(OI.LocationID) as Monday
FROM OrderInfo AS OI
LEFT JOIN LocationInfo AS LI
ON OI.LocationID = LI.LocationID
WHERE DateReceived = '2016-05-23'
GROUP BY ROLLUP(LI.LocationName)
) AS T1
LEFT JOIN
(
SELECT
CASE
WHEN GROUPING([LocationName]) = 1
THEN 'Total'
ELSE [LocationName]
END [LocationName],
COUNT(OI.LocationID) as LastMonday
FROM OrderInfo AS OI
LEFT JOIN LocationInfo AS LI
ON OI.LocationID = LI.LocationID
WHERE DateReceived = '2016-05-16'
GROUP BY ROLLUP(LI.LocationName)
) AS T2
ON T1.LocationName=T2.LocationName
ORDER By T1.[LocationName]
?
根据MongoDB文档:
$ out stage原子地用新的结果集合替换现有的集合。 $ out操作不会更改前一个集合中存在的任何索引。
答案 0 :(得分:0)
我不认为这是可能的。如果你真的想导出到其他数据库;将中间结果保存在某处并通过创建另一个看起来令人头疼的数据库进行填充