簡體   English   中英

修改流星中的收集值

[英]Modify collection value in Meteor

我想編寫一個查詢,該查詢會將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 });

我的兩個主要問題是:

  1. 我不知道如何獲得客戶的當前價值

  2. 我不知道如何改變類型

首先,如果您已經運行了查詢,那么您知道數據庫已經調整過了嗎? 因為如果您運行了它,它將更新該集合中的所有文檔!

請注意,這應該在服務器端運行,我認為minitype的所有版本都不支持$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 }
    }
}) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM