from pymongo import mongoclient
class
mongoapi
(object):
def__init__
(self, db_name, table_name, host=
"127.0.0.1"
, port=
27017):
self.db_name = db_name
self.table_name = table_name
self.host = host
self.port = port
self.conn = mongoclient(host=self.host, port=self.port)
self.db = self.conn[self.db_name]
self.table = self.db[self.table_name]
defget_one
(self, query)
:# 獲取乙個指定的值,並且將_id欄位不返回
return self.table.find_one(query, projection=
)def
get_query_all
(self, query)
:# 返回符合查詢條件的所有值
return self.table.find(query)
defget_all
(self)
:# 返回所有資料
return self.table.find(
)def
add(self, kv_dict)
:# 插入乙個字典值
return self.table.insert_one(kv_dict)
defdelete
(self, query)
:# 刪除指定條件的所有值
return self.table.delete_many(query)
defis_exist
(self, query)
:# 判斷是否有值滿足當前的查詢條件
ret = self.table.find_one(query)
return ret is
notnone
defupdate
(self, query, kv_dict)
:# 更新記錄,如果沒有就會插入
self.table.update_one(query,
, upsert=
true
)def
q_sort
(self,column, order=
1, query=):
# 查詢結果後,按照column進行排序通過order來進行排序,預設為公升序order:1,返回所有資料 降序為-1,
return self.table.find(query)
.sort(column, order)
if __name__ ==
'__main__'
: ma = mongoapi(db_name=
'student'
, table_name=
"16jixinan"
) students =[,
,]for student in students:
# 去重插入
ma.update(
, student)
students_all = ma.get_all(
)for student in students_all:
print
(student)
print
('--'*20
) student_sort = ma.q_sort(
'age'
)# 按照age進行公升序排序
for student in student_sort:
print
(student)
print
('--'*20
) student_is_exist = ma.is_exist(
)# 判讀滿足條件的記錄是否存在
print
(student_is_exist)
student_is_exist = ma.is_exist(
)print
(student_is_exist)
ma.delete(
)# 刪除id為2的值
測試結果:
----------------------------------------
true
false
ChatterBot自定義MongoDB路徑
預設資料庫為slite3,已經不能滿足需求,需改為mongodb class bot def init self self.my bot chatbot mode storage adapter chatterbot.storage.mongodatabaseadapter filters chat...
自定義MongoDB的ObjectId
mongodb的objectid,由12位組成,其中前四位是乙個unix的時間戳,精確到秒,這樣就產生乙個問題,如果按objectid排序的話,可能得到的順序,和資料插入的順序是有差別的。由此,需要自定義objectid生成器,也是12位組成,只是組成內容有差異,如下 12 8位 時間戳 48位 s...
自定義介面
好久沒寫介面了 好像以前也沒怎麼寫過.已經忘記怎麼寫了 就自己動手寫乙個熟悉一下 demo很簡單 就三個類 名字就隨便起了 public inte ce mylistener2 public class a catch interruptedexception e listener.setliste...