mongodb update array (续)

由于超过最大字数,续一下

PRIMARY> db.test.update({ "skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa"},{$pull:{"usrDiscountBCList":"joe"}}) --$pull使用
PRIMARY> db.test.findOne()
{
"_id" : 1,
"myfied" : [
[
{
"name" : "joe",
"scores" : 90
}
]
],
"skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa",
"usrComboVer" : "bbbbbbbbbbbbbb",
"usrDiscountBCList" : [
{
"usrContentId" : "5",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120124000000",
"expTime" : "20120223235959"
},
{
"usrContentId" : "6",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120224000000",
"expTime" : "20120325235959"
},
{
"name" : "joe",
"scores" : 90
}
]
}

db.test.update({ "skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa"},{$pullAll:{"usrDiscountBCList":[{name:"joe",scores:90}]}}) --$pullAll使用
db.test.findOne()
{
"_id" : 1,
"myfied" : [
[
{
"name" : "joe",
"scores" : 90
}
]
],
"skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa",
"usrComboVer" : "bbbbbbbbbbbbbb",
"usrDiscountBCList" : [
{
"usrContentId" : "5",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120124000000",
"expTime" : "20120223235959"
},
{
"usrContentId" : "6",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120224000000",
"expTime" : "20120325235959"
}
]
}

PRIMARY> db.test.update({ "skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa"},{$rename:{"usrDiscountBCList":"mycolumn"}}) --$rename使用
PRIMARY> db.test.findOne()
{
"_id" : 1,
"mycolumn" : [
{
"usrContentId" : "5",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120124000000",
"expTime" : "20120223235959"
},
{
"usrContentId" : "6",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120224000000",
"expTime" : "20120325235959"
}
],
"myfied" : [
[
{
"name" : "joe",
"scores" : 90
}
]
],
"skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa",
"usrComboVer" : "bbbbbbbbbbbbbb"
}

PRIMARY> db.test.update({ "mycolumn.sourceId":1},{$unset:{"mycolumn.$.sourceType":1}})
PRIMARY> db.test.findOne()
{
"_id" : 1,
"mycolumn" : [
{
"billingCol0" : 0,
"billingType" : 1,
"billingTypeValue" : 0,
"contentId" : "1",
"effTime" : "20120124000000",
"expTime" : "20120223235959",
"sourceId" : 1,
"usrContentId" : "5"
},
{
"usrContentId" : "6",
"sourceType" : 1,
"sourceId" : 1,
"contentId" : "1",
"billingType" : 1,
"billingTypeValue" : 0,
"billingCol0" : 0,
"effTime" : "20120224000000",
"expTime" : "20120325235959"
}
],
"myfied" : [
[
{
"name" : "joe",
"scores" : 90
}
]
],
"skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa",
"usrComboVer" : "bbbbbbbbbbbbbb"
}
PRIMARY> db.test.update({ "mycolumn.sourceId":1},{$unset:{"mycolumn.1.sourceType":1}})
PRIMARY> db.test.findOne()
{
"_id" : 1,
"mycolumn" : [
{
"billingCol0" : 0,
"billingType" : 1,
"billingTypeValue" : 0,
"contentId" : "1",
"effTime" : "20120124000000",
"expTime" : "20120223235959",
"sourceId" : 1,
"usrContentId" : "5"
},
{
"billingCol0" : 0,
"billingType" : 1,
"billingTypeValue" : 0,
"contentId" : "1",
"effTime" : "20120224000000",
"expTime" : "20120325235959",
"sourceId" : 1,
"usrContentId" : "6"
}
],
"myfied" : [
[
{
"name" : "joe",
"scores" : 90
}
]
],
"skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa",
"usrComboVer" : "bbbbbbbbbbbbbb"
}
PRIMARY> db.t.insert({x: [1,2,3,4,3,2,3,4]})
PRIMARY> db.t.find()
{ "_id" : ObjectId("50c19a7be2e3192b739d44eb"), "x" : [ 1, 2, 3, 4, 3, 2, 3, 4 ] }
PRIMARY> db.t.update({x:3}, {$unset:{"x.$":1}})
PRIMARY> db.t.find()
{ "_id" : ObjectId("50c19a7be2e3192b739d44eb"), "x" : [ 1, 2, null, 4, 3, 2, 3, 4 ] }

以上是$和$unset一起使用的结果,有些地方还是有区别的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值