Mongodb学习总结

database

Mongodb相关操作总结

2020/4/2

Mongodb使用的是类似与json字符串的形式存储数据

[

{

key:value

},

{

key:value

},

]

Mongodb使用了不存在的对象,即创建该对象

use db 使用db数据库

show dbs 查看当前服务器中写在磁盘上的数据库

show tables 查看数据库中的collection

db 查看当前使用的数据库

1.增删改查:

增:

db.collection.insert({数据}) 自动生成 _id : ObjectId("")

官方推荐:

db.collection.insertOne({数据}) 插入一条数据

db.collection.insertMany([{数据},{数据}]) 插入多条数据

查:

db.collection.find({条件})

db.collection.findOne({条件})

改:

db.collection.update({条件},{$修改器:{数据}})

官方推荐:

db.collection.updateOne({条件},{$修改器:{数据}}) 更新一条数据

db.collection.updateMany({条件},{$修改器:{数据}}) 更新所有数据

删:

db.collection.remove({条件})

官方推荐:

db.collection.deleteOne({条件}) 删除一条数据

db.collection.deleteMany({条件}) 删除所有符合条件的数据

清除collection:

db.collection.drop()

2.$关键字

数学比较符:

$lt

$lte

$gt

$gte

$eq :

db.collection.find("score":{$gt:80})

查询关键字:

$or db.collection.find({$or:[{name:1},{age:73}]})

$in db.collection.find({age:{$in:[1,2,3,4]}}) #符合其中一个条件即可

$all db.collection.find({hobby:{$all:[1,2,3,4]}}) #子集查询

2018年12月25日:

1.$修改器 :

$set 简单粗暴 {name:value} dict["name"]=value

$unset 简单粗暴的删除字段 {$unset:{name:1}} del dict["name"]

db.user_info.updateOne({age:200},{$unset:{age:1}})

$inc 引用增加

db.user_info.updateMany({},{$inc:{age:1}})

array操作

$push 在array中追加一个新的元素 [].append(item)

db.user_info.updateOne({name:"200wansui"},{$push:{hobby:10}})

$pull 在array中删除一个的元素 [].remove(item) [].pop(-1)

db.user_info.updateOne({name:"200wansui"},{$pull:{hobby:0}})

$pop 不含索引 -1 从前往后 1 从后往前

db.user_info.updateOne({name:"200wansui"},{$pop:{hobby:1}})

2.$ 字符

db.user_info.updateOne({hobby:6},{$set:{"hobby.$":"六"}})

保存符合索引条件数据的下标

3.Object 字典操作

db.user_info.updateOne({name:"200wansui"},{$inc:{"info.tizhong":-5}})

db.user_info.updateOne({name:"200wansui"},{$set:{"info.long":12.5}})

4.array + Object

db.user_info.updateOne({"hobby.shengao":150},{$set:{"hobby.$.long":14}})

5.limit

db.user_info.find({}).limit(5)

选取数据从当前位置选择5个

6.skip 跳过

db.user_info.find({}).skip(2)

从0开始跳过2条数据为当前位置

7.sort

db.user_info.find({}).sort({ id:-1 })

根据ID进行排序 -1倒叙 1正序

8.limit+skip+sort

db.user_info.find({}).limit(5).skip(10)

db.user_info.find({}).limit(c).skip((p-1)*c)

db.user_info.find({}).limit(5).skip(5).sort({ id:-1 })

优先级最高的是 sort

其次优先为 skip

最低优先级 limit

9.pymongo

import pymongo

from bson import ObjectId

mongo_client = pymongo.MongoClient(host="127.0.0.1",port=27017)

MONGO = mongo_client["数据库"]

查询数据

res = list(MONGO.user_info.find({}))

print(res)

res = MONGO.user_info.find_one({"id":20})

res["_id"] = str(res["_id"])

res = list(MONGO.user_info.find({"$or":[{"name":"dwb"},{"id":15}]}))

print(res)

ObjectId json操作

res_obj = MONGO.user_info.find_one({"_id":ObjectId(res["_id"])})

print(res_obj)

print(res.get("name"),type(res.get("_id")),type(res))

import json

res_json = json.dumps(res)

print(res_json)

增加数据

res = MONGO.user_info.insert_one({"name":"pymongo","age":666})

print(res,res.inserted_id)

res = MONGO.user_info.insert_many([{"name":"pymongo","age":666},{"name":"pymongo","age":666}])

print(res,res.inserted_ids)

for doc in res:

print(doc)

修改数据

res = MONGO.user_info.update_many({"age":666},{"$set":{"name":"pydwb","age":999}})

print(res,dir(res),res.raw_result)

删除数据

res = MONGO.user_info.delete_one({"id":20})

res = MONGO.user_info.delete_many({"name":1})

print(res,dir(res),res.raw_result)

skip sort limit

res = list(MONGO.user_info.find({}).limit(5))

print(len(res))

res = list(MONGO.user_info.find({}).limit(5).skip(5))

print(len(res),res)

res = list(MONGO.user_info.find({}).sort("age",pymongo.DESCENDING))

print(res)

res = list(MONGO.user_info.find({}).sort("age",pymongo.DESCENDING).skip(5).limit(2))

print(res)

python 的 update

res = MONGO.user_info.find_one({"name":"200wansui"})

print(res)

res.get("info")["shengao"] = 170

res.get("info")["tizhong"] = 130

res.get("info")["long"] = 18.5

MONGO.user_info.update_one({"_id":res.get("_id")},{"$set":res})

res = MONGO.user_info.find_one({"name":"200wansui"})

print(res)

以上是 Mongodb学习总结 的全部内容, 来源链接: utcz.com/z/532971.html

回到顶部