mongoDB更新數組裏面的一組對象的屬性

MongoDB 如何更新數組裏面的一組對象的屬性?

dbDao 百度貼吧:http://tieba.baidu.com/dbdao

如下面的例子

語法如下:
db.collection.update(
	{  },
	{ : { "array.$.field" : value } }
)
db.students.insert ({
  _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 } }
)
> db.students.insert ({
...	_id: 4,
...	grades: [
...		{ grade: 80, mean: 75, std: 8 },
...		{ grade: 85, mean: 90, std: 5 },
...		{ grade: 90, mean: 85, std: 3 }
...	]
... })
WriteResult({ "nInserted" : 1 })
>
>
> db.students.update(
...	 { _id: 4, "grades.grade": 85 },
...	 { $set: { "grades.$.std" : 6 } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
>  db.students.find();
{ "_id" : 4, "grades" : [ { "grade" : 80, "mean" : 75, "std" : 8 }, { "grade" : 85, "mean" : 90, "std" : 6 }, { "grade" : 90, "mean" : 85, "std" : 3 } ] }
>
>
>
> db.students.find().pretty();
{
		  "_id" : 4,
		  "grades" : [
					 {
								"grade" : 80,
								"mean" : 75,
								"std" : 8
					 },
					 {
								"grade" : 85,
								"mean" : 90,
								"std" : 6
					 },
					 {
								"grade" : 90,
								"mean" : 85,
								"std" : 3
					 }
		  ]
}
 若要多個filed 匹配則使用
db.students.update(
	{
	  _id: 4,
	  grades: { $elemMatch: { grade: { $lte: 90 }, mean: { $gt: 80 } } }
	},
	{ $set: { "grades.$.std" : 6 } }
)

相關文章 | Related posts:

  1. mongodb $all操作符 $all操作符幫助選擇collection中field是array類型的,且該array包含所有指定的元素的d […]...
  2. mongodb db.collection.remove用法 dbDao 百度貼吧:http://tieba.baidu.com/dbdao MongoDB技術學習QQ羣: […]...
  3. MongoDB _id Key的一些信息 關於 mongodb _id key: _id key可以用戶分配,也可以由mongodb自動分配,一般採用自 […]...
  4. MongoDB db.collection.remove()方法 mongodb中刪除document採用remove方法, http://docs.mongodb.org/m […]...
  5. MongoDB $unset重置某個field 對於已經有值的field,在mongodb中可以使用$unset操作符來重置該field。 http://do […]...
  6. 瞭解db.collection.find() db.collection.find()可能是mongodb中最常用的方法之一了,其定義爲db.collect […]...
  7. MongoDB db.collection. ensureIndex 和 db.collection.createIndex 注意從mongoDB 3.0開始ensureIndex被廢棄,今後都僅僅是db.collection.crea […]...
  8. E11000 duplicate key & mongorestore mongorestore 可以將mongodump工具導出的數據導入到其他mongodb數據庫中。 由於mon […]...
  9. C100DBA MongoDB講解-update in replication C100DBA MongoDB講解-update in replication dbDao 百度貼吧:http […]...
  10. MongoDB sharding collection 與 unique index dbDao 百度貼吧:http://tieba.baidu.com/dbdao MongoDB技術學習QQ羣: […]...
發佈了27 篇原創文章 · 獲贊 83 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章