MongoDB的研究


1)配置环境变量  
2)在D盘建一个数据文件夹data
3) 命令启动服务器27017端口
mongod  --dbpath=d:/data
不要关闭dos窗口
4) 客户端连接进入mongodb命令窗口
mongo localhost:27017
默认连接进去先进的是test库
db;   显示当前在哪个库里面
use shop;  创建一个库名叫shop的数据库
//隐式创建表集
db.userInfo.insert({"name":"zhangsan","age":18});  //添加数据
db.userInfo.find();    //find里面没有加条件是查找该表集的全部数据

db.createCollection("product");   //显示创建名字叫product的表集
show collections;  //查看当前库下面有哪些表集
下面添加10000行数据
for(var i=1;i<=10000;i++){
 db.product.insert({"pName":"name"+i,"price":i})
 }
//统计一下该表中有多少个文档数据
db.product.count();
//默认返回随机的20条文档数据
db.product.find();
//第一个json大括号里面加的是条件过滤
db.product.find({"price":10});

//第二个json大括号里面是不希望哪些列查询出来就设置成0
db.product.find({"price":10},{"_id":0});

//查询前十条文档数据
db.product.find().skip(0).limit(10);
//不希望显示哪些列 设成0
db.product.find({},{"_id":0}).skip(0).limit(10);
//先使用find过滤和排除哪些列再使用sort进行排序
db.product.find({},{"_id":0}).sort({"price":1}).skip(0).limit(10);

//更新要注意
db.product.update({"price":100},{"price":99})
//为避免有些列被冲掉要先查找出来修改局部之后再进行更新
db.product.update({"price":101},{"pName":"name101","price":99})
//如果没加条件是全部清空移除
db.product.remove()
//移除满足条件的元素
db.product.remove({"price":104})

db.product.update({"price":105},{"pName":"name105","price":106})
db.product.remove({"price":106}) 满足条件的全部数据文档行都会被移除

使用即创建
use shop 创建库shop

db.goods.insert({name:"apple",price:2.6})  创建product表并同时往里面填数据

db.product.find({第一个json是过滤条件},{第二个json是显示哪些列})
                                                            第二个参数特地写:0不显示

//备份 必须在mongoDB命令外部,先退出到cmd命令窗口
exit;
mongodump -h localhost:27017 -d shop -o D://bak

linux下使用
mongodump -h localhost:27017 -d shop -o /usr/bak
db 默认在test库下
use shop
db.dropDatabase();
show dbs; 

恢复
exit;
mongorestore -h localhost:27017 -d shop -directoryperdb D://bak/shop(后面必须要加shop)

//添加个大数据500万个文档对象数据行
for(var i=1;i<=5000000;i++){
db.userInfo.insert({"userName":"name"+i,"userNO":"NO"+i})
}
//加索引之前查比较慢
db.userInfo.find({"userNO":"NO100"})

//查询耗时,后面的explain()是计算时间的
db.userInfo.find({"userNO":"NO100"}).explain()

//添加索引  给userNO列添加索引,用方法ensureIndex()是创建索引的关键,

语法
db.表集.ensureIndex({“值不重复的列名”:1});
db.userInfo.ensureIndex({"userNO":1});


//添加索引之后再查加倍查询速度
db.userInfo.find({"userNO":"NO100"})
//查询耗时几乎为0
db.userInfo.find({"userNO":"NO100"}).explain()
//查看索引
db.system.indexes.find()

//大于: field > value
 db.product.find({"price":{$gt:9996}});
//大于等于: field >= value
db.product.find({"price":{$gte:9996}});

//小于: field < value
db.product.find({"price":{$lt:10}});
//小于等于: field <= value
db.product.find({"price":{$lte:10}});

//不等于:  field != value
db.product.find({"price":{$ne:10}});

db.product.find({$and:[{"price":{$ne:4}},{"price":{$ne:13}}]}).skip(0).limit(20)

db.product.count();

db.product.find().skip(索引).limit(pageSize);
        包含索引所在的那一条
分页 前十条
db.product.find()..skip(0).limit(10);
分页取接下来的十条
db.userInfo.find().skip(10).limit(10);
db.product.find({},{"_id":0}).sort({"price":1}).skip(0).limit(10)

db.product.find({price:{$ne:4}},{"_id":0}).skip(0).limit(10);


db.userInfo.find({age:{$lt:5}}).count();
db.userInfo.find().sort({age:1}); 降序-1
db.userInfo.find({},{"userName":1,"age":1,"_id":0}).sort({age:-1}).skip(0).limit(10);

db.userInfo.find().skip(2).limit(3);
db.userInfo.find().sort({age:-1}).skip(2).limit(3);
db.userInfo.find().sort({age:-1}).skip(2).limit(3).count();


查询集合中的文档 ,$or,相当于关系型数据库中的OR,表示或者的关系,
例如查询name为user2或者age为3的文档,命令为:
db.userInfo.find({$or:[{userName:"test2"},{age:3}]})

db.userInfo.find({$and:[{age:{$lt:17}},{age:{$gt:10}}]})

http://www.mongodb.org/downloads

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值