数据库之MongoDB篇
Object ID :Documents 自生成的 _id
String: 字符串,必须是utf-8
Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
Double:浮点数 (没有float类型,所有小数都是Double)
Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
Null:空数据类型 , 一个特殊的概念,None Null
Timestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
更多数据类型介绍参见:https://www.cnblogs.com/DragonFire/p/9135854.html
增:
db.tablename.insert: 3.2有新方式,不推荐[{}];
官方推荐 :insertone返回 _id、insertMany([{}]):返回 _ids
db.users.insert([{'name':'lv','age':30}])
db.users.insertMany([{'name1':'lv','age':30},{'name2':'hei','age':27},
查:
db.tablename.find()查询符合条件的数据 返回:类型
findone 第一条... Json
条件:{name:2}#列表name=2;并列条件:多个key-value对;
db.users.find({age:{$in:[31,3,5]}}) db.users.find({$or:[{age:{$in:[31,3,5]}},{name:'lv'}]})
db.users.find({}).limit(6).skip(4)
改:
db.tablename.update({},{$set())#3.2后不再支持,更新符合条件的数据,默认第一条
updateOne({'age':99},{$set("name":"JW8")})# $set为修改器:强制修改满足条件的字段
updateMany #修改所有符合条件的数据
db.users.update({},{$set:{'age':30}}) db.users.update({},{$set:{'hobby':[1,2,3,'xiangqi']}}) db.users.updateMany({age:27},{$set:{'hobby':['tongwawa',]}}) db.users.updateOne({age:30},{$push:{'hobby':['tongwawa',]}}) db.users.updateOne({age:30},{$pushAll:{'hobby':[4,6,5]}}) db.users.updateOne({age:30},{$pull:{'hobby':['tongwawa',]}}) db.users.update({},{$set:{'objects':{"name":'wenjie'}}}) db.users.updateOne({age:30},{$pop:{'hobby':1}}) db.users.updateOne({age:30},{$pop:{'hobby':-1}}) db.users.updateOne({age:30,hobby:2},{$set:{'hobby.$':'wenjie'}}) db.users.updateOne({age:30,hobby:1},{$inc:{'hobby.$':10}})
删:
db.tablename.remove({}) #3.2有新方式,不推荐;
db.users.deleteMany({'age':30})
from pymongo import MongoClient conn=MongoClient('127.0.0.1',27017) MONGODB=conn['phoneAI']
#示例代码 @auth.route('/login',methods=['GET','POST'],endpoint='login',strict_slashes=False) def login_func(): if request.method=='POST': user_info =request.form.to_dict() user=MONGODB.user.find_one(user_info) print(user) if not user: return '用户名或密码错误!' else: session['user_id'] = str(user['_id']) return redirect('display') return render_template('login.html')
#查询语句 goods_list = MONGODB.goods.find() res_list = list(MONGODB.content.find({})) good=MONGODB.goods.find_one({'goodname':goodname}) user = MONGODB.users.find_one(user_info,{"password":0}) toy_info = MONGODB.toys.find_one({"_id":ObjectId(tid)}) user = MONGODB.users.find_one({"_id": ObjectId(toy_info["bind_user"])}) chat_window = MONGODB.chats.find_one({"user_list":{"$all":[from_user,to_user]}}) device_key = request.form.to_dict() # {"device_key":341252346} toy = MONGODB.devices.find_one(device_key) from bson import ObjectId user = MONGODB.user.find_one({'_id': ObjectId(session['user_id'])})
#更新语句 MONGODB.user.update_one({'_id': ObjectId(session['user_id'])}, {"$set": user}) MONGODB.chats.update_one({"_id":chat_window.inserted_id},{"$set":{"user_list":[str(toy.inserted_id),toy_info["bind_user"]]}}) MONGODB.chats.update_one({"_id":chat_window.inserted_id},{"$set":{"user_list":[str(toy.inserted_id),toy_info["bind_user"]]}})
#插入(增加)语句 MONGODB.users.insert_one(user_info) MONGODB.cartlog.insert_one(clear_dic) MONGODB.content.insert_many(content_list) chat_window = MONGODB.chats.insert_one({"user_list":[],"chat_list":[]}) # 建立聊天窗口 chat_window = MONGODB.chats.insert_one({"user_list":[req_info.get("toy_id"),req_info.get("add_user")],"chat_list":[]}) code_list = [] code_info = {"device_key":code_hash} code_list.append(code_info) MONGODB.devices.insert_many(code_list)
@chat.route("/chat_list",methods=["POST"]) def chat_list(): chat_info = request.form.to_dict() chat_window = MONGODB.chats.find_one({"_id":ObjectId(chat_info.get("chat_id"))}) RET["CODE"] = 0 RET["MSG"] = "查询聊天记录" RET["DATA"] = chat_window.get("chat_list") get_chat(chat_info.get("to_user"),chat_info.get("from_user")) return jsonify(RET)