【发布时间】:2017-10-29 02:08:36
【问题描述】:
我正在尝试从不同的集合中获取一些数据并将它们作为一个对象数组返回,但我需要合并具有相同标题的对象。
'search': function(value) {
const res1 = Col1.find({ title: new RegExp(value, 'i') }, { fields: { title: 1, type: 1 } }).fetch() || [],
res2 = Col2.find({ title: new RegExp(value, 'i') }, { fields: { title: 1, type: 1 } }).fetch() || []
let result = res1.concat(res2)
return result
}
假设第一个集合会给我type-field 的“汽车”,第二个集合给我“动物”。
如果有相同的标题,我需要更改type-field并添加一些内容。
{ _id: 1, title: 'mercedes', type: 'cars' }
{ _id: 2, title: 'monkey', type: 'animals' }
{ _id: 3, title: 'jaguar', type: 'cars' }
{ _id: 4, title: 'jaguar', type: 'animals' }
应该转化为
{ _id: 1, title: 'mercedes', type: 'cars' }
{ _id: 2, title: 'monkey', type: 'animals' }
{ title: 'jaguar', type: 'multiple', results: [
{ _id: 3, title: 'jaguar', type: 'cars' }
{ _id: 4, title: 'jaguar', type: 'animals' }
] }
【问题讨论】:
-
看起来您应该从一开始就以不同的方式设置数据库?
标签: javascript arrays object merge