mongodb
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb相关的知识,希望对你有一定的参考价值。
MongoDB: 数据库,nosql win:安装,设置环境变量 默认端口:27017 创建 C:datadb [{ id:1 name:"蔡文姬" age: 16 gender:"女" }, { id:1 name:"蔡文姬" age: 16 sex:["女","girl","老阿姨"] other:{ hobby:["男","boy","小哥哥"] } }] *使用了不存在的对象即创建该对象 *不存在关系链接 mongod 开启服务端 mongo 客户端连接 db 查看当前所在库 show dbs 查看库 use SS2DAY04 创建并进入库,内存中,要写数据才行,没有数据,不存在物理磁盘中 show tables 查看表 db.users 在当前库中创建表users db.users.insert({name:"蔡文姬",age:16}) 写入数据 db.users.insert({name:"虞姬",age:21,gender:"女"}) db.users.find() 查询 db.users.update() 更新,设定:field db.users.update({"name":"蔡文姬"},{$set:{"gender":"女"}}) db.users.remove({}) 没有条件就删除所有的数据 db.users.remove({"age":21}) 插入: db.users.insert({name:"蔡文姬",age:16}) # 建议不要使用 不推荐使用 查询: db.users.find() 更新: db.users.update({"name":"蔡文姬"},{$set:{"age":18}})# 建议不要使用 不推荐使用 删除: db.users.remove({"age":21}) # 建议不要使用 不推荐使用 table Collections 表 row Documents 数据条目 column Field 字段 MongoDB数据类型: Object ID :Documents 自生成的 _id 并且 不支持转换成JSON字符串 ?:{"_id" : ObjectId("5bda5293c6c72e52ffc7e91e")} ObjectId:"5bda5293c6c72e52ffc7e91e" 0-8字节是时间戳, 9-14字节的机器标识符,表示MongoDB实例所在机器的不同; 15-18字节的进程id,表示相同机器的不同MongoDB进程。 19-24字节是计数器 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类型,时间戳可以秒杀一切时间类型) 增删改查的支持方式: insert: db.users.insertMany([{"name":"金王吧"},{"name":"egon"}]) db.users.insertOne({"name":"刘sir"}) remove: db.users.deleteOne({"age":30}) db.users.deleteMany({"age":30}) update: db.users.updateOne({},{$set: {"cursors":"FullStack"}}) db.users.updateMany({},{$set: {"cursors":"FullStack"}}) find: db.users.find({}) db.users.findOne({}) 数学比较符: $lt: < $lte: <= $gt: > $gte: >= $eq;== : : == or = $: 存储满足条件的数据下标索引位置 db.users.updateOne({"other.name":"linux","name":"银网吧"},{$set:{"other.$.score":19}}) 弊端:[ [1,2,3], [{k:{zk:zv}},{k2:v2},{k3:v3}], [4,5,6], ] $关键字 查询: $or : db.users.find({$or:[{age:18},{name:"银网吧"}]}) $and : , $in : db.users.find({age:{$in:[18,84,73]}}) $all : db.users.find({hobby:{$all:[1,2,3,4,5,6]}}) $修改器 update: $set: 直接将字段的值设定为value $unset: 删除字段 $inc: 原值增加 db.users.updateMany({name:"金王吧"},{$inc: {cursors: 1}}) $array修改器: $push : append(item) db.users.updateMany({name:"金王吧"},{$push: {hobby:10}}) $pull : remove(item) db.users.updateMany({name:"金王吧"},{$pull: {hobby:10}}) $pop : pop() db.users.updateMany({name:"金王吧"},{$pop: {hobby:-1}}) 1最后一个 -1第一个 skip limit sort limit : db.users.find({}).limit(2) 显示条目数量 skip : db.users.find({}).skip(1) 跳过条目数量 简单分页 :db.users.find({}).limit(当前页码*每页条目).skip(每页条目) sort :db.users.find({}).sort({ age:1 }) 1:ASC -1:DESC 分页排序多重用法: db.users.find({}).sort({ age:-1 }).limit(2).skip(2)
nosqlbooster4mongo :win端可视化连接工具
python中操作mongodb pip3 install pymongo 先安装
import pymongo # 得到一个连接对象 mongo = pymongo.MongoClient("127.0.0.1",27017) # 连接到指定数据库的对象 MONGODB = mongo["SS2DAY04"] #查: # result = list(MONGODB.users.find({})) # for item in result: # print(item) # print(result) # result_one = MONGODB.users.find_one({}) # print(result_one,type(result_one)) # print(result_one.get("_id"),type(result_one.get("_id"))) # 增: # res = MONGODB.student.insert_one({"name":"yd","nickname":"wl"}) # print(res.inserted_id,type(res.inserted_id)) # res = MONGODB.student.insert_many([{"name":"yd","nickname":"wl"},{"name":"wpq","nickname":"cb"},{"name":"lj","nickname":"dsb"}]) # print(res.inserted_ids) # 删: # MONGODB.student.remove({}) # MONGODB.student.delete_one({"name":"yd"}) # MONGODB.student.delete_many({"name":"yd"}) # 改: # MONGODB.student.update({"name":"yd"}) # MONGODB.student.update_one({"name":"wpq"},{"$set":{"nickname":"peppa pig"}}) # MONGODB.student.update_many({},{"$set":{"age":84}}) # 删: # MONGODB.student.delete_many({}) #删除表中的所有数据 # MONGODB.student.drop() #删表 # 分页: # res = MONGODB.users.find({}).sort("age",pymongo.ASCENDING).limit(2).skip(0) #正向排序 # for i in res: # print(i)
以上是关于mongodb的主要内容,如果未能解决你的问题,请参考以下文章
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项
在 Spring MongoDB 的 ReplaceRoot 管道阶段使用 $mergeObjects