Как выбрать все данные в 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} )

Я надеюсь, что вы могли бы начать. Посмотрите на документацию очень тщательно.

Другие вопросы по тегам