我想写一个查询,将project field
的类型从string
更改为object
。
所以,如果project
字段现在具有值abcd
,我希望它有这样的对象:{id: 'abcd'}
所以:
project: 'abcd'
转向:
project: {id: 'abcd'}
我在mongo中做这件事没有问题:
db.hello.find({}).forEach((project) => {
project.project = {
id: x.project
}
db.hello.save(x)
})
但我不知道如何在流星中做到这一点。到目前为止,我有:
Projects.update($set: { client: ??? } }, { multi: true });
我的两个主要问题是:
首先,如果你已经运行了查询,那么你知道db已经被调整了吗?因为如果你运行了它,它会更新该集合中的所有文档!
请注意,这应该在服务器端运行,我不认为所有版本的minimongo都支持$type
。
// grab the cursor all string typed `project` fields
const cursor = Projects.find({ project: { $type : "string" } });
// grab the data from the cursor
const projects = cursor.fetch();
// Loop on each project and update
projects.forEach( project => Projects.update(project._id, {
$set: {
project: { id: project }
}
}) )