Как выбрать все данные в PyMongo?
Я хочу выбрать все данные или выбрать с условным в таблице random
но я не могу найти руководство по MongoDB в Python, чтобы сделать это.
И я не могу показать все данные были выбраны.
Вот мой код:
def mongoSelectStatement(result_queue):
client = MongoClient('mongodb://localhost:27017')
db = client.random
cursor = db.random.find({"gia_tri": "0.5748676522161966"})
# cursor = db.random.find()
inserted_documents_count = cursor.count()
for document in cursor:
result_queue.put(document)
1 ответ
Для mongodb есть довольно полная документация. Для python (Pymongo) вот URL: https://api.mongodb.org/python/current/
Примечание: рассмотрите версию, которую вы используете. С последней версии появились новые функции и возможности.
Чтобы проверить версию pymongo, которую вы используете, выполните следующее:
import pymongo
pymongo.version
Сейчас. Относительно запроса на выбор, который вы просили. Насколько я могу сказать, код, который вы представили, в порядке. Вот выбранная структура в mongodb.
Прежде всего это называется find ().
В пимонго; если вы хотите выбрать конкретные строки (в действительности это не строки в mongodb, они называются документами. Я говорю о строках, чтобы упростить их понимание. Я предполагаю, что вы сравниваете mongodb с SQL); Итак, если вы хотите выбрать конкретный документ из таблицы (называемый collection в mongodb), используйте следующую структуру (в качестве имени коллекции я буду использовать random; также предположим, что таблица random имеет следующие атрибуты: age: 10, type: ninja, класс: черный, уровень: 1903):
db.random.find({ "age":"10" })
Это вернет все документы с возрастом 10 лет.
Вы можете добавить больше условий, просто разделив запятыми
db.random.find({ "age":"10", "type":"ninja" })
Это позволит выбрать все данные с 10 лет и набрать ниндзя.
если вы хотите получить все данные, просто оставьте пустым как:
db.random.find({})
Теперь предыдущие примеры отображают все (возраст, тип, класс, уровень и _id). Если вы хотите отобразить определенные атрибуты, скажем, только возраст, вам нужно будет добавить еще один аргумент для поиска, называемого проекцией, например: (1 - показать, 0 - не показать):
{'age':1}
Обратите внимание, что это возвращает возраст и _id. _id всегда возвращается по умолчанию. Вы должны явно указать это не возвращать это как:
db.random.find({ "age":"10", "name":"ninja" }, {"age":1, "_id":0} )
Я надеюсь, что вы могли бы начать. Посмотрите на документацию очень тщательно.