db.collection.save()
åšæ¬é¡µé¢
db.collection.
save
()
æŽæ°ç°æçæç®ææå
¥æ°ææ¡£ïŒå
·äœåå³äºå
¶
document
åæ°ãæ³šæMongoDBåŒçšè¯¥db.collection.save()
æ¹æ³ãèæ¯äœ¿çšdb.collection.insertOne()
ædb.collection.replaceOne()
代æ¿ã
save()æ¹æ³å
·æä»¥äžåœ¢åŒïŒ
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
åæ° | ç±»å | æè¿° |
---|---|---|
document | document | èŠä¿åå°éåçææ¡£ã |
writeConcern | document | å¯éçã衚瀺åå
³æ³šçæä»¶ãçç¥äœ¿çšé»è®€åå
¥é®é¢ãè§åå
³æ³šã åŠæåšäºå¡äžè¿è¡ïŒè¯·äžèŠäžºæ äœæç¡®è®Ÿçœ®åå
³æ³šç¹ãèŠå¯¹äºå¡äœ¿çšåå
³æ³šïŒè¯·åè§ äºå¡ååå
³æ³šã |
该
save()
è¿åå
嫿äœçç¶æç对象ãè¿åïŒ | å
嫿äœç¶æçåç»æ objectã |
save()æ¹æ³äœ¿çšæå
¥ææŽæ°åœä»€ïŒå®äœ¿çšé»è®€çåå
³æ³šãèŠæå®å
¶ä»åå
³æ³šç¹ïŒè¯·åš options åæ°äžå
å«åå
¥å
³æ³šç¹ã
åŠæææ¡£äžå
å«_idåæ®µïŒåsave()æ¹æ³ calls insert()æ¹æ³ãåšæäœæéŽïŒmongo shell å°å建ObjectIdå¹¶å°å
¶åé
ç»
_id
åæ®µã泚æå€§å€æ° MongoDB 驱åšçšåº clients å°å å«_id
åæ®µå¹¶åšå° insert æäœåéå° MongoDB ä¹åçæObjectId
;äœæ¯ïŒåŠæ client åéæ²¡æ_id
åæ®µçææ¡£ïŒåmongodå°æ·»å_id
åæ®µå¹¶çæObjectId
ã
åŠæææ¡£å
å«_idåæ®µïŒåsave()æ¹æ³çæäºupsert é项讟眮䞺
true
äž_id
åæ®µäžçæ¥è¯¢è°è¯çæŽæ°ãdb.collection.save()
å¯ä»¥åšå€ææ¡£äº€æäžäœ¿çšãåŠæè¯¥æäœå¯ŒèŽæå
¥ïŒå该éåå¿
须已ç»ååšã
åŠæåšäºå¡äžè¿è¡ïŒè¯·äžèŠäžºæäœæç¡®è®Ÿçœ®åå
³æ³šç¹ãèŠå¯¹äºå¡äœ¿çšåå
³æ³šïŒè¯·åè§ äºå¡ååå
³æ³šã
éèŠåšå€§å€æ°æ åµäžïŒäžåææ¡£åå ¥çžæ¯ïŒå€ææ¡£äºå¡äº§ççæ§èœææ¬æŽé«ïŒå¹¶äžå€ææ¡£äºå¡çå¯çšæ§äžåºæ¿ä»£ææçæ¶æè®Ÿè®¡ãåšè®žå€æ åµäžïŒ éè§èåæ°æ®æš¡åïŒåµå ¥åŒææ¡£åæ°ç»ïŒå°ç»§ç»æ¯æšçæ°æ®åçšäŸçæäœ³éæ©ãä¹å°±æ¯è¯ŽïŒåšè®žå€æ åµäžïŒéåœå°å¯¹æ°æ®å»ºæš¡å°æå€§çšåºŠå°åå°å¯¹å€ææ¡£äº€æçéæ±ãæå ³å ¶ä»äºå¡äœ¿çšæ¹é¢ç泚æäºé¡¹ïŒäŸåŠè¿è¡æ¶éå¶åæäœæ¥å¿å€§å° éå¶ïŒïŒåŠè¯·åè§ ç产泚æäºé¡¹ã
åšäžé¢ç瀺äŸäžïŒsave()æ¹æ³æ§è¡ insertïŒå äžºäŒ éç»è¯¥æ¹æ³çææ¡£äžå
å«
_id
åæ®µïŒdb.products.save( { item: "book", qty: 40 } )
åš insert æéŽïŒshell å°å建å
·æå¯äžObjectId value ç
_id
åæ®µïŒç±æå
¥çææ¡£éªè¯ïŒ{ "_id" : ObjectId("50691737d386d8fadbd6b01d"), "item" : "book", "qty" : 40 }
åœæäœäžº run æ¶ïŒ
ObjectId
åŒç¹å®äºæºåšå timeãå æ€ïŒæšçåŒå¯èœäž example äžçåŒäžåãåšäžé¢ç瀺äŸäžïŒsave()䜿çš
upsert:true
æ§è¡æŽæ°ïŒå äžºææ¡£å
å«_id
åæ®µïŒdb.products.save( { _id: 100, item: "water", qty: 30 } )
ç±äº
_id
åæ®µå
å«éåäžäžååšç valueïŒå æ€æŽæ°æäœäŒå¯ŒèŽæå
¥ææ¡£ãè¿äºæäœçç»æäžåžŠæ upsert é项ç update()æ¹æ³è®Ÿçœ®äžºtrue
çžåã该æäœå¯ŒèŽ
products
éåäžçä»¥äžæ°ææ¡£ïŒ{ "_id" : 100, "item" : "water", "qty" : 30 }
products
éåå
å«ä»¥äžææ¡£ïŒ{ "_id" : 100, "item" : "water", "qty" : 30 }
save()æ¹æ³äœ¿çš
upsert:true
æ§è¡æŽæ°ïŒå äžºææ¡£å
å«_id
åæ®µïŒdb.products.save( { _id : 100, item : "juice" } )
ç±äº
_id
åæ®µå
å«éåäžååšç valueïŒå æ€æäœäŒæ§è¡æŽæ°ä»¥æ¿æ¢ææ¡£å¹¶çæä»¥äžææ¡£ïŒ{ "_id" : 100, "item" : "juice" }
坹坿¬éçä»¥äžæäœæå®
"w: majority"
ç"w: majority"
ïŒå
¶wtimeout
䞺 5000 毫ç§ïŒä»¥äŸ¿è¯¥æ¹æ³åšåå
¥äŒ æå°å€§å€æ°è¡šå³å¯æ¬éæååè¿åïŒæè
è¯¥æ¹æ³åš 5 ç§åè¶
æ¶ãdb.products.save(
{ item: "envelopes", qty : 100, type: "Clasp" },
{ writeConcern: { w: "majority", wtimeout: 5000 } }
)
å°
save()
è¿åäžäžªWriteResult
å
嫿å
¥ææŽæ°æäœçç¶æå¯¹è±¡ãæå
³è¯Šç»ä¿¡æ¯ïŒè¯·åè§WriteResult以è·åŸæå
¥ä¿¡æ¯ïŒå¹¶ åè§ WriteResult以è·åŸæŽæ°ä¿¡æ¯ãè¯è
ïŒæå é£
æ ¡å¯¹ïŒ
æè¿æŽæ° 1yr ago