xuesn 发表于 2015-11-11 10:22:28

mongo db backup 2

  这一篇看一下array的update oprater:
  1. $
  在不知道elem的具体位置时使用
  假设有如下文档
  { "_id" : 1, "grades" : [ 80, 85, 90 ] }
{ "_id" : 2, "grades" : [ 88, 90, 92 ] }
{ "_id" : 3, "grades" : [ 85, 100, 90 ] }

  那么:
  db.students.update( { _id: 1, grades: 80 }, { $set: { "grades.$" : 82 } } )

  假设嵌套结构
  { "_id" : 4, "grades" : [ { grade: 80, mean: 75, std: 8 },
                        { grade: 85, mean: 90, std: 5 },
                        { grade: 90, mean: 85, std: 3 } ] }

  那么
  db.students.update( { _id: 4, "grades.grade": 85 }, { $set: { "grades.$.std" : 6 } } )
  2. $addtoset
  名字里有set那就是如果没有才加进去
  假设有doc
  { _id: 1, item: "filter", tags: [ "electronics", "camera" ] }

  那么
  db.inventory.update(
                     { _id: 1 },
                     { $addToSet: { tags: "accessories"} }
                   )
  也可以配合$each一次添加多个:
  db.inventory.update(
                  { _id: 2 },
                  { $addToSet: { tags: { $each: [ "camera",
                                                    "electronics",
                                                    "accessories" ] } } }
                   )

  

  3. $pop
  pop删除第一个或者最后一个.奇怪的是-1是第一个,1是最后一个.
  假设{ _id: 1, scores: [ 8, 9, 10 ] }

  执行db.students.update( { _id: 1 }, { $pop: { scores: -1 } } )之后, 8被删除.
  

  4:$pullall
  

  

  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: mongo db backup 2