美文网首页
MongoDB修改器

MongoDB修改器

作者: Eve0 | 来源:发表于2017-08-22 21:52 被阅读0次

1.字段修改器

  • $currentDate
    数据准备:db.userlist.insert({name:'mily',age:25,birth:ISODate("2013-10-02T01:11:18.965Z")});
    更新birth字段为当前时间,年龄修改为24:
db.userlist.update(
{ name:   'mily' },
{
  $currentDate: {
               "birth":{
                      $type:'date'
                }
  },
   $set:{
         age:24
   }
});

查看结果:

{
        "_id" : ObjectId("599b44fc91cf72aa04177638"),
        "name" : "mily",
        "age" : 24,
        "birth" : ISODate("2017-08-21T20:43:18.226Z")
}
  • $inc 指定字段增加
    db.userlist.update({name:'mily'},{$inc:{age:1}})#将名字为mily的人年龄+1

  • $min
    需要修改的值如果比原来文档中的值小,就更新,否则不更新.如果原元素中不存在该属性,则以当前的值set进去
    db.userlist.update({name:'mily'},{$min:{age:13}})

  • $max
    需要修改的值如果比原来文档中的值大,就更新,否则不更新.如果原元素中不存在该属性,则以当前的值set进去
    db.userlist.update({name:'mily'},{$min:{age:23}})

  • $mul
    与原文档中指定的元素相乘,如果不存在,则设置为0
    db.userlist.update({name:'lily'},{$mul:{age:3}})#年龄设置为3倍

  • $rename 重命名
    db.userlist.update({name:'lily'},{$rename:{name:'new-name'}});#将lily的这个文档元素name修改为new-name

  • $set
    更新其中的部分字段
    db.userlist.update({name:'t'},{$set:{age:23}})#更新name为t的年龄为23

  • $setOnInsert
    新插入了一个文档,upset:true.如果update和update:true匹配到了文档,这个时候,会忽略$setOnInsert操作。

db.products.update(
...   { _id: 1 },
...   {
...      $set: { item: "apple" },
...      $setOnInsert: { defaultQty: 100 }
...   },
...   { upsert: true }
... )
  • $unset
    删除指定的属性
    db.products.update({_id:1},{$unset:{defaultQty:""}});删除defaultQty属性

2.数组修改器

数据准备:

db.students.insertMany([
{ "_id" : 1, "grades" : [ 80, 85, 90 ] },
{ "_id" : 2, "grades" : [ 88, 90, 92 ] },
{ "_id" : 3, "grades" : [ 85, 100, 90 ] }
]);
  • $(update)
    (1)更新数组中的值:
    db.students.update({_id:1,grades:90},{$set:{'grades.$':91}})

查找id为1,grades含有90的,并将其修改为91

(2)更新数组中的文档

  • $addToSet
    更新name为小明的,habbit追加一个hello.不重复的元素。否则加不进去。
    db.userlist.update({name:'xiaoming'},{$addToSet:{habbit:'hello'}})
    此时:"habbit" : [ "banana", "apple", "peach", "grape", "hello" ]

  • $pop
    移除数组的第一个或者最后一个元素。-1移除第一个,1移除最后一个。
    db.userlist.update({name:'xiaoming'},{$pop:{habbit:1}})#移除hello

  • $pull
    移除数组里的某元素
    db.userlist.update({name:'xiaoming'},{$pull:{habbit:'peach'}})#移除小明兴趣里的peach

  • $pullAll
    与$pull差不多。这个移除多个。
    db.userlist.update({name:'xiaoming'},{$pullAll:{habbit:['grape','apple']}})

  • $push
    向原元素中追加
    db.userlist.update({name:'xiaoming'},{$push:{habbit:'apple'}})

  • $pushAll
    追加多个
    db.userlist.update({name:'xiaoming'},{$pushAll:{habbit:['potato','peach']}})

  • $each
    与$addToSet或者$push一起使用。
    db.userlist.update({name:'xiaoming'},{$push:{habbit:{$each:['aaa','bbb']}}}) #追加aaa,bbb

  • $position
    指定插入的位置,下标从0开始
    db.userlist.update({name:'xiaoming'},{$push:{habbit:{$each:['cc','dd'],$position:0}}})

  • $slice
    更新数组中的几个。0表示清空,-num表示更新数组中的倒数num个,num表示更新数组中的前num个。
    db.userlist.update({name:'xiaoming'},{$push:{habbit:{$each:['11','22'],$slice:0}}})#清空

  • $sort
    给小明的books字段添加。并按照pages升序排放。


db.userlist.update(
{name:'xiaoming'},
{
  $push:{
    books:{
      $each:[
          {name:'math',pages:130},
          {name:'English',pages:450},
          {name:'Geo',pages:76}
      ],
    $sort:{pages:1}
    }
  }
})

3.按位修改器

  • $bit

4.位置修改器

  • $isolated 后续介绍

相关文章

  • MongoDB一对多关系建模

    MongoDB 一对多关系建模MongoDB一对多模式的三种设计方案MongoDB数组修改器更新数据

  • MongoDB修改器

    $inc:增加或者减少已有的键值(如果不存在则新建一个) 用法: key:需要更新的键(不存在则新建一个),后面的...

  • MongoDB修改器

    1.字段修改器 $currentDate数据准备:db.userlist.insert({name:'mily',...

  • mongodb修改器使用

    对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器...

  • MongoDB 入门系列(五)

    修改器 $set 新建文件mongodb-9.js输入以下代码 查看并修改数据我想把father新增一个字段:{f...

  • mongoDB入门篇-多种姿势完成文档查询

    上篇文章我们详细的学习了MongoDB中关于文档的增删改操作以及相关的修改器,而本篇文章我们将从常见的基础查询,以...

  • pymongo操作指南

    更新操作update 在实际中,更新文档往往是更新文档的一部分内容,在 MongoDB 中,我们可以使用更新修改器...

  • 2020-09-13blender导出v3d加载卡住,控制台报错

    一个物体有多个骨架修改器,去掉多余的骨架修改器只保留一个骨架修改器

  • 【Solidity智能合约系列】10--函数修改器

    函数修改器(Function Modifiers) 函数修改器(Modifiers)可以用来改变一个函数的行为。比...

  • 骨骼蒙皮

    不管模型是分开还是一个整体,骨骼蒙皮都不影响 先选中模型,再选择修改器的蒙皮:一个模型一个蒙皮修改器 在蒙皮修改器...

网友评论

      本文标题:MongoDB修改器

      本文链接:https://www.haomeiwen.com/subject/iykhdxtx.html