MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

आर:मोंगोलाइट का उपयोग करके मोंगोडब में एक प्रविष्टि को अद्यतन करना

mongo$update() फ़ंक्शन एक query लेता है और एक update बहस। आप query का उपयोग करते हैं वह डेटा ढूंढने के लिए जिसे आप अपडेट करना चाहते हैं, और update यह बताने के लिए कि किस फ़ील्ड को अपडेट करना है।

इस उदाहरण पर विचार करें

library(mongolite)
    
## create some dummy data and insert into mongodb
df <- data.frame(id = 1:10,
  value = letters[1:10]
)
    
mongo <- mongo(collection = "another_test", 
  db = "test", 
  url = "mongodb://localhost")
    
mongo$insert(df)
    
## the 'id' of the document I want to update
mongoID <- "575556825dabbf2aea1d7cc1"
    
## find some data
rawData <- mongo$find(query = paste0('{"_id": { "$oid" : "',mongoID,'" }}'), 
  fields = '{"_id" : 1, 
  "id" : 1, 
  "value" : 1}'
)
    
## ...
## do whatever you want to do in R...
## ...

## use update to query on your ID, then 'set' to set the 'checkedByR' value to 1

mongo$update(
  query = paste0('{"_id": { "$oid" : "', mongoID, '" } }'),
  update = '{ "$set" : { "checkedByR" : 1} }'
)

## in my original data I didn't have a 'checkedByR' value, but it's added anyway

अपडेट करें

rmongodb पुस्तकालय अब सीआरएएन पर नहीं है, इसलिए नीचे दिया गया कोड काम नहीं करेगा

और अधिक जटिल संरचनाओं और अपडेट के लिए आप इस तरह के काम कर सकते हैं

library(mongolite)
library(jsonlite)
library(rmongodb)  ## used to insert a non-data.frame into mongodb
    
## create some dummy data and insert into mongodb
lst <- list(id = 1,
  value_doc = data.frame(id = 1:5,
  value = letters[1:5],
  stringsAsFactors = FALSE),
  value_array = c(letters[6:10])
)
    
## using rmongodb
mongo <- mongo.create(db = "test")
coll <- "test.another_test"
    
mongo.insert(mongo, 
  ns = coll, 
  b = mongo.bson.from.list(lst)
)
    
mongo.destroy(mongo)

## update document with specific ID
mongoID <- "5755f646ceeb7846c87afd90"
    
## using mongolite
mongo <- mongo(db = "test", 
  coll = "another_test", 
  url = "mongodb://localhost"
)
    
    
## to add a single value to an array
mongo$update(
  query = paste0('{"_id": { "$oid" : "', mongoID, '" } }'),
  update = '{ "$addToSet" : { "value_array" :  "checkedByR"  } }'
)
    
## To add a document  to the value_array
mongo$update(
  query = paste0('{"_id": { "$oid" : "', mongoID, '" } }'),
  update = '{ "$addToSet" : { "value_array" : { "checkedByR" : 1} } }'
)
    
## To add to a nested array
mongo$update(
  query = paste0('{"_id": { "$oid" : "', mongoID, '" } }'),
  update = '{ "$addToSet" : { "value_doc.value" :  "checkedByR" } }'
)
    
rm(mongo); gc()

देखें mongodb update अधिक जानकारी के लिए दस्तावेज़ीकरण




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo में सभी दस्तावेज़ों में स्ट्रिंग को कैसे बदलें?

  2. Mongoid और Rails . के साथ फ़ील्ड उपनाम

  3. MongoDB - एकत्रीकरण का उपयोग करके सरणी को खोलना और डुप्लिकेट को हटाना

  4. ग्रुप काउंट 2 आइटम ऑब्जेक्ट ऐरे मोंगोडब

  5. क्या मोंगो में एक स्लाइस का टुकड़ा प्राप्त करना संभव है?