所以我有这样的模式:
{ user: '123', code: 'abc', uses: [...] },
{ user: '123', code: 'def', uses: [...] },
我想要这样
{ user: '123', code: ['abc', 'def'], uses: [...] },
我现在正在尝试
schema.aggregate([
{ $unwind: '$uses' },
{ $group: { _id: '$_id', user: { $first: '$user' }, code: { $addToSet: '$code' }, uses: { $addToSet: '$uses' } } }
]);
但我没有得到我想要的结果,它没有改变任何东西,除了现在code
是一个数组但只有1个代码的事实。
基本上,我编辑了函数的工作方式,现在我需要code
成为一个数组,因为我有超过400个文档,我试图编辑所有这些文档以适应新的函数,而不是手工完成。
编辑:好的,我想我让它工作,
{ $unwind: '$uses' },
{ $group: { _id: '$user', code: { $addToSet: '$code' }, uses: { $addToSet: '$uses' } } }
问题(我认为)是user: { $first: '$user' }
,因为现在w/o它就像我想要的那样工作。但现在问题又来了。如何用新的模式替换旧的模式?
1条答案
按热度按时间rvpgvaaj1#
这是最终的工作代码:
正如我在上次编辑中所说的,问题是
user: { $first: '$user' }
,但我真的不知道如何以及为什么。