MongoDb的学习

来源:互联网 发布:去他妈的全世界 知乎 编辑:程序博客网 时间:2024/05/22 14:20
1.MongoDB中bin目录分析核心:mongod: 数据库核心进程mongos: 查询路由器,集群时用mongo:  交互终端(客户端)二进制导出导入:mongodump:导出bson数据mongorestore: 导入bsonbsondump: bson转换为jsonmonoplog:数据导出导入mongoexport: 导出json,csv,tsv格式mongoimport: 导入json,csv,tsv诊断工具:mongostatsmongotopmongosniff  用来检查mongo运行状态mongodb要求磁盘剩余空间>=4G,如果不够,可以用 --smallfiles 选项2.mongo入门命令  (注:table在mongodb里叫collections)use databaseName 选库(如果数据库不存在,则创建数据库,否则切换到指定数据库) db.dropDatabase() 删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名show dbs/databases  查看当前的数据库 db 查看当前使用那个数据库show tables/collections 查看当前库下的collectiondb.collection.drop() 删除集合db.collectionName.find() 查看 (对于查看是最难得后面会有介绍)db.collectionName.insert({title:'nice day'}) 增加单篇文档(_id是默认的)db.collectionName.insert({_id:8}) 增加单个文档,并指定_iddb.collectionName.insert([{time:'friday',study:'mongodb'},{_id:9,gender:'male',name:'QQ'}]) 增加多个文档db.collectionName.remove({}) 删除所有数据    db.collectionName.remove(查询表达式, 选项)  查询表达式 想当于条件  选项是指  {true/false},是否只删一行, 默认为false    db.collectionName.update(查询表达式,新值,选项) db.news.update({name:'QQ'},{name:'MSN'}) 是指选中news表中,name值为QQ的文档,并把其文档值改为{name:'MSN'}结果: 文档中的其他列也不见了,改后只有_id和name列了即--新文档直接替换了旧文档,而不是修改如果是想修改文档的某列,可以用$set关键字db.collectionName.update(query,{$set:{name:’QQ’}}) 默认修改添加最先添加的数据$set  修改某列的值$unset 删除某个列$rename 重命名某个列$inc 增长某个列$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段 MongoDB2.4版本之后新增的小试牛刀一下db.sb.insert({name:'man',sex:'n',age:20,by:'lock'}) 添加数据db.sb.find() 简单查询db.sb.find({"a.x":1}) 查询子文档db.sb.find().sort({_id:1}) 1与-1分别代表正序与倒序db.sb.update({name:'man'},{$set:{name:'sex'},$rename:{sex:'n'},$unset:{by:'lock'},$inc:{age:1}}) 修改name 更改sex列的名字 删除by列 age列自增db.sb.find()db.sb.update({x:2},{$set:{x:1}},{multi:true}) 修改x 匹配多行db.sb.find()db.sb.update({x:1},{x:11111},{upsert:true}) 修改x 如果匹配成功就更改 没有了就添加db.sb.find().count() 统计集合中有多少条数据db.sb.find({x:1},{y:1}) 查x列相等的值 查询指定的列db.sb.find({},{x:true,_id:0}) 查询所有文档的x列属性,且不查询_id属性db.sb.find({$and:[{x:1},{y:1}]}) 查询x列的值 and y列的值db.sb.find({x:{$nin:[1,3]}}) 查询x列中不存在的任意一个值的数据db.sb.find({x:{$in:[1,3]}}) 查询x列中任意一个值db.sb.find({$or:[{_id:1},{_id:2}]}) 查询x列中任意一个值db.sb.find({$or:[{$and:[{a:1},{b:1}]},{c:1}]}) and与or的混合搭配用法db.sb.find({$nor:[{x:2},{y:1}]}) 查询x列不为2y列也不1的数据db.sb.find({_id:{$ne:1}}) 查询_id列的值不为1的数据db.sb.find({id:{$all:[1,2]}}) 是指取出 id列是一个数组,且至少包含 1,2值db.sb.find({id:{$exists:true}}) 查询出文档中含有id的列db.sb.find({name:/a.*/}) 用正则表达式查询 db.sb.find({$where:'this.id==1&&this.age==26'}) 这样的查询写起来简单但是效率不高 因为他还有解析json$type的操作符认知Double 1  String 2  Object 3  Array 4  Binary data 5  Undefined 6 已废弃。Object id 7  Boolean 8  Date 9  Null 10  Regular Expression 11  JavaScript 13  Symbol 14  JavaScript (with scope) 15  32-bit integer 16  Timestamp 17  64-bit integer 18  Min key 255 Query with -1.Max key 127  db.sb.find({_id:{$type:1}}) 你想表达的什么类型直接在$type后面跟上相对应的值

0 0
原创粉丝点击