I have the same issue about getting the data updated with pymongo
How to get the data updated with pymongo
But pprint()
cannot solve my problem.
Environment: Python, MongoDB, Pymongo
I'm getting "x" as my recent update value, just like getting the "results" in previous link, that why I'm wondering the same solution isn't fit, my x is <pymongo.results.UpdateResult object at 0x00000216021EA080>
print(x)
print(type(x))
<pymongo.results.UpdateResult object at 0x00000216021EA080>
<class 'pymongo.results.UpdateResult'>
Here is the code:
import pymongo
import datetime
import json
from pprint import pprint
def init_db(ip, db, coll):
myclient = pymongo.MongoClient('mongodb://' + ip + '/')
mydb = myclient[db]
mycol = mydb[coll]
return mydb, mycol
def change_db_data(myquery_json, one_or_many_bool, newvalues_json ):
if one_or_many_bool == True:
x = mycol.products.update_many(myquery_json, newvalues_json)
else:
x = mycol.products.update_one(myquery_json, newvalues_json)
return x
ip_input = input("Enter the ip: ")
exist_DB_name = input("Enter exist DB name: ")
exist_coll_name = input("Enter exist collection name: ")
mydb, mycol = init_db(ip_input, exist_DB_name, exist_coll_name)
myquery_str = input("Enter ur query: ")
update_one_or_many = input("U are update one or many values? (ex:1 for many , 0 for one): ")
newvalues_str = input("Enter new values: ")
one_or_many_bool = bool(int(update_one_or_many))
myquery_json =json.loads(myquery_str)
newvalues_json =json.loads(newvalues_str)
x = change_db_data(myquery_json, one_or_many_bool, newvalues_json)
print(x)
print(type(x))
pprint(x)
pprint(type(x))
The output
Enter the ip: localhost:27017
Enter exist DB name: (practice_10_14)-0002
Enter exist collection name: collection_new02cp
Enter ur query: { "name": { "$regex": "^R" }, "Age" : { "$gt": 50 } }
U are update one or many values? (ex:1 for many , 0 for one): 1
Enter new values: { "$set": { "name": "Old Mr.R" }}
<pymongo.results.UpdateResult object at 0x00000216021EA080>
<class 'pymongo.results.UpdateResult'>
<pymongo.results.UpdateResult object at 0x00000216021EA080>
<class 'pymongo.results.UpdateResult'>
My print(x)
and pprint(x)
print the same value, which pprint()
isn't work.
I want it print out the modify data