Is there a function to only extract/return the value of a field with Pymongo?

Question:

I’m using MongoDB and want to work with it in Python which is needed for my project. I wanted to extract only the value of a specific field with Pymongo. In my case, I tried returning the name of a charging station which is saved in a database as a document with the attributes name, standard, location, charging capacity, operator

I only found a website which solved my problem in Mongosh by just using db.products.findOne().collectionname.

For a better understanding of my problem, please visit this website which describes my problem pretty good: https://database.guide/how-to-return-just-the-value-in-mongodb/

So I naturally tried using this method. But it didn’t work for me with Pymongo…

chargers = db.chargers 

result = chargers.findOne().name
print(result)

I received this error as a result in the terminal after running the .py file.
Terminal Error

So my question is: Is there a method for Pymongo to return only the value of a field in a document?
E.g. the name of a product or in my case a charger.

Asked By: Felix

||

Answers:

ok here is something you can give a try:

change:

result = chargers.findOne().name

to:

result = chargers.findOne({"name": "the value of the document name"}, {"name"})

change the "value of the document name" to the filter, like you have a document which has a field {name: "abc"}, so type abc in place of "the value of the document name".

then do this for clean results:

result = str(result["name"])
print(result)
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.