mongodb 在更新中设置为空 [英] mongodb set null in update

查看:45
本文介绍了mongodb 在更新中设置为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须交换文档的值.

var query = {"_id" : ObjectId("53e1c254382f891cc600076d")};

db.properties.find(query).forEach(function(prop){
   printjson({"_id":prop._id, "val":prop.val, "ua":prop.ua});
   db.properties.update(query, {$set:{ua: prop.val}},{$unset:{val:""}});
});

更新操作前,文档如下所示:

Before update operation, document looks like this:

{
    "_id" : ObjectId("53e1c254382f891cc600076d"),
    "val" : 9876541,
    "ua" : null
}

更新后变成:

{
    "_id" : ObjectId("53e1c254382f891cc600076d"),
    "val" : 9876541,
    "ua" : 9876541
}

但我希望它是:

{
    "_id" : ObjectId("53e1c254382f891cc600076d"),
    "val" : null,
    "ua" : 9876541
}

但它不起作用.还设置 "val" null ({$set:{val:null}}) 直接删除了我的整个文档.

But its not working. also setting "val" null ({$set:{val:null}}) directly it deleted my entire document.

推荐答案

Setting undefined,效果很赞!!

Setting undefined, It worked like a charm!!

db.properties.find(query).forEach(function(prop){
    db.properties.update(query, {$set:{ua: prop.val, val:undefined}}); 
});

这篇关于mongodb 在更新中设置为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆