MongoDB使用

mac2024-10-20  12

MongoDB 使用

MongoDB:不支持外键/链表

启动MongoDB服务 ./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork

数据库以及表的操作

查看所有的数据库 : show dbs 查看所有数据库

通过use关键字切换数据库: use admin

查看表 show tables查看表 删除集合(表) db.user.drop() 删除数据库 先切换到要删除的数据库 use testdb 删除 db.dropdatabase()

新增数据 _id为object类型的 以划线开头的都是系统域(表) MongooDB是json格式的 db.表名.insert({id:1,name:‘zf’,age:18})

db.user.save({id:2,name:'list,age:33})

查询表数据 db.user.find() 更改数据

更改不存在的字段是会新增这个字段 db.表名.update( {id:1}, {KaTeX parse error: Expected 'EOF', got '}' at position 13: set:{age:25}}̲, true …se修改后字段会被覆盖 ) 删除数据 //justone 如果为true或1,则之删除一个文档 如果是false则删除多个文档 db.user.remove({age:22},true)//删除一条数据 db.user.remove()//不加参数则全部删除

查询数据 db.user.find()查询全部 db.user.find({},{id:1,name:1}) db.user.find().count()查询个数 db.user.find({id:1}).pretty()美化查询 db.user.find({age:{KaTeX parse error: Expected 'EOF', got '}' at position 7: lte:21}̲})查询年龄比21小或者是21…lte:21},name:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gte:2}̲})查询年龄比21大或者是21…or:[{id:21},{id:1}]})查询id=21与是id=1的数据 db.user.find().limit(2).skip(1)从第下标为一的开始截取2条数据 查询条件 $lt < (less than ) $lte <= (less than or equal to ) $gt > (greater than ) $gte >= (greater than or equal to)

$ne != (not equal to)不等于 {'age': {'$ne': 20}}

KaTeX parse error: Expected '}', got 'EOF' at end of input: …在范围内 {'age': {'in’: [20, 23]}} 注意用list KaTeX parse error: Expected '}', got 'EOF' at end of input: …不在范围内{'age': {'nin’: [20, 23]}} 注意用list。这个方法可以计算某个值既不等于x也不等于y

$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字 $exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在 $type 类型判断 {'age': {'$type': 'int'}} age的类型为int $text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串 $or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})

索引 db.user.getindexes({})查看索引

db.user.reopindex()删除索引 db.user.createindex({'age':1,id':-1})创建联合索引

执行计划 查询分析可以确保我们建议的索引是否有效,是查询语句效率分析的重要工具 查看执行计划

db.user.find().explain()

查询方式 IDHACK 针对_id进行查询 SHARD_MERGE 合并分片结构 FETCH 根据索引去检索文档 IXSCAN 索引扫描 COLLSCAN 全表扫描比较慢

最新回复(0)