Python MongoDB

ໃນ MongoDB ພວກເຮົາໃຊ້ຄືນ find ແລະ findOne ເພື່ອການຄົ້ນຫາຂໍ້ມູນຈາກການຄົ້ນຫາດັ່ງກ່າວນີ້。

ຄືກັບຄືນ SELECT ທີ່ຕ້ອງການຄົ້ນຫາຂໍ້ມູນຈາກໜ້າຂໍ້ມູນ MySQL。

ການຄົ້ນຫາຫຼັກຫຼາຍ

ຖ້າພວກເຮົາຕ້ອງຈະຄົ້ນຫາຂໍ້ມູນຈາກການຄົ້ນຫາໃນການຄົ້ນຫາ MongoDB ແລ້ວພວກເຮົາຈະສາມາດໃຊ້ find_one() ຄືນ。

find_one() ຄືນກັບຄືນຈະກັບຄືນທຳອິດທີ່ມີຄວາມສຳພັນກັບຄືນຄົ້ນຫາດັ່ງກ່າວນີ້。

实例

ການຄົ້ນຫາໜັງສາຍທຳອິດຂອງ ການຄົ້ນຫາ customers

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)

运行实例

ການຄົ້ນຫາທັງໝົດ

ຖ້າພວກເຮົາຕ້ອງຈະຄົ້ນຫາຂໍ້ມູນຈາກໜ້າຂໍ້ມູນ MongoDB ແລ້ວພວກເຮົາຈະສາມາດໃຊ້ find() ຄືນ。

find() ຄືນກັບຄືນຈະກັບຄືນທັງໝົດທີ່ມີຄວາມສຳພັນກັບຄືນຄົ້ນຫາດັ່ງກ່າວນີ້。

find() ຄວາມສະເພາະຄັນຄົນທີໜຶ່ງແມ່ນວ່າ query ຄອງເພາະຂອງຄືນ。ໃນຄັ້ງນີ້ພວກເຮົາໃຊ້ query ຄອງເພາະຂອງຄືນວ່າມີສະຖານະພາບທີ່ວ່າຈະຄົ້ນຫາທຸກໜັງສາຍໃນການຄົ້ນຫາຂອງການຄົ້ນຫາດັ່ງກ່າວນີ້。

find() ຄືນບໍ່ມີການຈັດສະຖານະພາບທີ່ມີຜົນທີ່ຄືກັບ SELECT * ໃນ MySQL。

实例

ກັບຄືນຂອງ "customers" ການຄົ້ນຫາທັງໝົດແລະຂຽນການຈັດສະຖານະພາບທຸກໆໜັງສາຍດັ່ງກ່າວນີ້:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
  print(x)

运行实例

ພຽງແຕ່ກັບຄືນຫຼາຍຄຳຂອງພາຍໃນຂອງຄືນຈັກການຄົ້ນຫາດັ່ງກ່າວນີ້。

find() ຄວາມສະເພາະຄັນຄົນທີສອງແມ່ນວ່າຂອງເປັນອາກາດຄວາມທີ່ກວມເອົາໃນຜົນຂອງການຄົ້ນຫາ。

此参数是可选的,如果省略,则所有字段都将包含在结果中。

实例

只返回姓名和地址,而不是 _ids:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
  print(x)

运行实例

不允许在同一对象中同时指定 0 和 1 值(除非其中一个字段是 _id 字段)。如果指定值为 0 的字段,则所有其他字段的值为 1,反之亦然:

实例

这个例子从结果中排出 "address":

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
  print(x)

运行实例

实例

如果在同一对象中同时指定 0 和 1 值,则会出现错误(除非其中一个字段是 _id 字段):

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
  print(x)