Javascript 修改Meteor中的集合值
我想编写一个查询,将Javascript 修改Meteor中的集合值,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我想编写一个查询,将项目字段的类型从字符串更改为对象 因此,如果project字段现在有值abcd,我希望它有这样一个对象: {id:'abcd'} 因此: 转向: project: {id: 'abcd'} 我在mongo做这件事没有问题: db.hello.find({}).forEach((project) => { project.project = { id: x.project } db.hello.save(x) }) 但我不知道如何在《流星》中做到这一
项目字段
的类型从字符串
更改为对象
因此,如果project
字段现在有值abcd
,我希望它有这样一个对象:
{id:'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 });
我的两个主要问题是:
首先,如果您已经运行了查询,那么您知道数据库已经被调整了是吗?因为如果您确实运行了它,它将更新该集合中的所有文档 请注意,这应该在服务器端运行,我不认为所有版本的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 }
}
}) )
// 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 }
}
}) )