Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 用于数据类型转换的Mongo Db批量更新操作_Mongodb_Mongodb Query - Fatal编程技术网

Mongodb 用于数据类型转换的Mongo Db批量更新操作

Mongodb 用于数据类型转换的Mongo Db批量更新操作,mongodb,mongodb-query,Mongodb,Mongodb Query,如何对mongo db执行批量操作?我已经有了改变数据类型的脚本,但它并没有考虑到巨大的容量 集合“store”有一个名为“priceList”的列,该列是一个数组,包含多个字段,其中一个字段是“value”。现在它是整数,现在我想把它转换成自定义记录对象 当前模式 store - _id - name [String] - priceList [Array] - amount [Record] //{"unscaled":<value>, "scaled", &l

如何对mongo db执行批量操作?我已经有了改变数据类型的脚本,但它并没有考虑到巨大的容量

集合“store”有一个名为“priceList”的列,该列是一个数组,包含多个字段,其中一个字段是“value”。现在它是整数,现在我想把它转换成自定义记录对象

当前模式

store
 - _id  
 - name [String]
 - priceList [Array]
    - amount [Record] //{"unscaled":<value>, "scaled", <value>}
    - value  [Integer]
谢谢

希望这有帮助(更新)

希望这有帮助(更新)

你试着这样做

db.store.find({
    priceList: {
        $exists: true
    }
}).forEach(function(myDoc) {
    var child = myDoc.priceList;
    for (var i = 0; i < child.length; i++) {
        var ob = child[i];
        var obj = {"unscaled":NumberLong(ob.value),"scaled":NumberInt(0)};
        if ('value' in ob) {
            ob.value = obj;
            child[i] = ob;
        }

    }
    db.store.update({
        _id: myDoc._id
    }, {
        $set: {
            subMenu: child
        }
    });
    });
db.store.find({
价格表:{
$exists:true
}
}).forEach(函数(myDoc){
var child=myDoc.priceList;
对于(变量i=0;i
你这样尝试

db.store.find({
    priceList: {
        $exists: true
    }
}).forEach(function(myDoc) {
    var child = myDoc.priceList;
    for (var i = 0; i < child.length; i++) {
        var ob = child[i];
        var obj = {"unscaled":NumberLong(ob.value),"scaled":NumberInt(0)};
        if ('value' in ob) {
            ob.value = obj;
            child[i] = ob;
        }

    }
    db.store.update({
        _id: myDoc._id
    }, {
        $set: {
            subMenu: child
        }
    });
    });
db.store.find({
价格表:{
$exists:true
}
}).forEach(函数(myDoc){
var child=myDoc.priceList;
对于(变量i=0;i
我不想更改整个priceList数组,只想更改priceList下名为value的一个字段。我不想更改整个priceList数组,只想更改priceList下名为value的一个字段。
db.store.find({
    priceList: {
        $exists: true
    }
}).forEach(function(myDoc) {
    var child = myDoc.priceList;
    for (var i = 0; i < child.length; i++) {
        var ob = child[i];
        var obj = {"unscaled":NumberLong(ob.value),"scaled":NumberInt(0)};
        if ('value' in ob) {
            ob.value = obj;
            child[i] = ob;
        }

    }
    db.store.update({
        _id: myDoc._id
    }, {
        $set: {
            subMenu: child
        }
    });
    });