如何在mongodb中插入和更新值?

时间:2017-08-21 13:38:59

标签: mongodb mongodb-query aggregation-framework mongoid criteria

    {_id :1,    
    name : ABC,
address :India,
    ph : { 9856235412, 23654122 }
}

1。如何添加一个Ph的值?

表示我必须添加值02152123,结果应该

{_id :1,    
    name : ABC,
address :India,
    ph : { 9856235412, 23654122, 02152123 }
}

2。如何更新Ph?

的值9856235412

,结果应该

{_id :1,    
    name : ABC,
address :India,
    ph : { 888212225, 23654122, 02152123 }
}

请帮我解决java中的标准,我是mongo db的初学者

2 个答案:

答案 0 :(得分:1)

我假设ph实际上是一个数组而不是一个对象结构,所以数据结构是:

{_id :1, name : ABC, address :India, ph : [ 9856235412, 23654122 ] }

这应该这样做:

db.collection.update({$push:{ph : 02152123}}, {_id:1})

答案 1 :(得分:1)

ph : { 9856235412, 23654122 }不是有效的语法,如果它应该是一个对象:

ph: { someKey: 9856235412, anotherKey: 23654122 }

如果它是一个数组,它应该是:

ph : [ 9856235412, 23654122 ]

假设它是这样的数组:

{
  _id :1,    
  name : ABC,
  address :India,
  ph : [ 9856235412, 23654122 ]
}

<强> 1。如何添加一个Ph的值?

答案:

添加一个元素:

db.collection.update(
   { _id: 1 },
   { $addToSet: { Ph: 02152123 } }
)

添加多个元素:

db.collection.update(
   { _id: 1 },
   { $addToSet: { Ph: { $each: [ 123, 456, 789 ] } } }
 )

<强> 2。如何将Ph的值9856235412更新为888212225?

答案:

db.collection.update(
  { _id: 1, Ph: 9856235412 },
  { $set: { "Ph.$": 888212225 } }
)