1. 程式人生 > >MongoDB 的更新操作

MongoDB 的更新操作

# 資料更新操作 (update 和 save)
# update
|- 語法如下:db.集合.update(更新條件, 新的物件資料(更新操作符), upsert, multi)
	|- upsert 如果要更新的資料不存在,則增加一條新的內容(true 增加, false 不增加)
	|- multi 表示是否只更新滿足條件的第一行記錄。如果設定為false,只更新第一個;如果為true,全部更新
# 範例:把年齡為30歲的成績都更新為100
|- 更新存在的資料
	|- 只更新一條
db.student.update(
	{"age" : 30},
	{"$set" : {"score" : 100}},
	false,
	false
)

# 查詢記錄
db.student.find(
	{"age" : 30}
).skip(0).limit(10).sort(
	{"natural" : 1}
).pretty()

	|- 更新全部記錄
db.student.update(
	{"age" : 30},
	{"$set" : {"score" : 100}},
	false,
	true
)

|- 更新不存在的資料
# 相當於文件的建立
db.student.update(
	{"name" : "不存在"},
	{"$set" : {"name" : "確實不存在"}},
	true,
	false
)


# save
db.student.save(
	{"_id" : ObjectId("58b2455524dd9e3990acee12"), "age" : 50}
)
db.student.save(
	{"_id" : ObjectId("58b2455524dd9e3990acee12"), "score" : 80}
)
# 當前id不存在
db.student.save(
	{"_id" : ObjectId("58b2455524dd9f3990acee12"), "change" : 80}
)
# 由於此時對應的id欄位存在,所以就變為了更新操作,但是如果要儲存的資料不存在,
# 那麼就變為增加操作


# 由於save更新的時候要找到id欄位,相比較來說建議使用update操作