nosql mongodb 学习-----第二天 高级操作之查询命令
2013-10-12 00:03
288 查看
昨天学习了mongdb的安装、部署和简单的基本操作,今天继续学习复杂的查询。下面的内容都是经过操作能直接运行的,如果有什么问题请留言,大家一起学习。
1、创建数据库
MongoDB创建数据库完全可以使用use
如下:
use user;
这样就创建了一个数据库。
注:这一步很重要如果什么都不操作离开的话 这个库就会被系统删除。
2、新增记录
var single = {"name":"jack","password":"12345","age":"20",
"address":{"province":"anhui","city":"hefei"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10"),
"pic":"D:\a.png"
}
db.user.insert(single)
var single = {"name":"very","password":"12345","age":"56",
"address":{"province":"sichuan","city":"chengdu"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10 11:11:12"),
"pic":"D:\a.png"
}
db.user.insert(single)
var single = {"name":"very","password":"12345","age":"56",
"address":{"province":"sichuan","city":"chengdu"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10 11:11:12"),
"createDate":new Date(2010,2,1)
}
db.user.insert(single)
注:在mongdb中不支持批量新增的,批量新增需要通过for循环实现
3、查询数据
查询年龄 age > 20
db.user.find({"age": {$gt: "20"}})
db.user.find("this.age > 20");
db.user.find({$where: "this.age > 20"});
查询年龄 age >= 20
db.user.find({"age": {$gte: "20"}})
查询 createDate > 2010-01-01 and createDate <= 2010-11-31
db.user.find({"createDate": {$gt: new Date(2010,1,1), $lte: new Date(2010,11,31)}});
查询不匹配name=v*带头的记录
db.user.find({"name": {$not: /^v.*/}});
选择返回age和_id字段(_id字段总是会被返回,且前部分必须包含{})
db.user.find({}, {"age":true});
选择返回age、address和_id字段
db.user.find({}, {"age":true},{ "name" : true });
$exists判断字段是否存在
查询所有存在name字段的记录
db.user.find({"age": {$exists: true}});
查询所有不存在phone字段的记录
db.user.find({"age": {$exists: false}});
$type判断字段类型
查询所有name字段是字符类型的
db.user.find({"name": {$type: 2}});
查询所有age字段是整型的
db.user.find({"age": {$type: 16}});
排序sort()
以年龄升序asc
db.user.find().sort({"age": 1});
以年龄降序desc
db.user.find().sort({"age": -1});
限制返回记录数量limit()
返回1条记录
db.user.find().limit(1);
返回2条记录并打印信息
db.user.find().limit(2).forEach(function(users) {print('my age is ' + users.age)});
限制返回记录的开始点skip()
从第1条记录开始,返回2条记录(limit 1,2)
db.user.find().skip(1).limit(2);
查询记录条数count()
db.user.find().count();
db.user.find({"age":"56"}).count();
以下返回的不是2,而是user表中所有的记录数量
db.user.find().skip(1).limit(2).count();
如果要返回限制之后的记录数量,要使用count(true)或者count(非0)
db.user.find().skip(1).limit(2).count(true);
今天到这里为止,明天继续学习集合函数 和 其他操作(更新操作)
现在所有的学习都是在命令的情况进行的,后面将学习使用java代码进行实现。
1、创建数据库
MongoDB创建数据库完全可以使用use
如下:
use user;
这样就创建了一个数据库。
注:这一步很重要如果什么都不操作离开的话 这个库就会被系统删除。
2、新增记录
var single = {"name":"jack","password":"12345","age":"20",
"address":{"province":"anhui","city":"hefei"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10"),
"pic":"D:\a.png"
}
db.user.insert(single)
var single = {"name":"very","password":"12345","age":"56",
"address":{"province":"sichuan","city":"chengdu"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10 11:11:12"),
"pic":"D:\a.png"
}
db.user.insert(single)
var single = {"name":"very","password":"12345","age":"56",
"address":{"province":"sichuan","city":"chengdu"},
"favourite":["apple","banana"],
"birthday":new Date("2010-09-10 11:11:12"),
"createDate":new Date(2010,2,1)
}
db.user.insert(single)
注:在mongdb中不支持批量新增的,批量新增需要通过for循环实现
3、查询数据
查询年龄 age > 20
db.user.find({"age": {$gt: "20"}})
db.user.find("this.age > 20");
db.user.find({$where: "this.age > 20"});
查询年龄 age >= 20
db.user.find({"age": {$gte: "20"}})
查询 createDate > 2010-01-01 and createDate <= 2010-11-31
db.user.find({"createDate": {$gt: new Date(2010,1,1), $lte: new Date(2010,11,31)}});
查询不匹配name=v*带头的记录
db.user.find({"name": {$not: /^v.*/}});
选择返回age和_id字段(_id字段总是会被返回,且前部分必须包含{})
db.user.find({}, {"age":true});
选择返回age、address和_id字段
db.user.find({}, {"age":true},{ "name" : true });
$exists判断字段是否存在
查询所有存在name字段的记录
db.user.find({"age": {$exists: true}});
查询所有不存在phone字段的记录
db.user.find({"age": {$exists: false}});
$type判断字段类型
查询所有name字段是字符类型的
db.user.find({"name": {$type: 2}});
查询所有age字段是整型的
db.user.find({"age": {$type: 16}});
排序sort()
以年龄升序asc
db.user.find().sort({"age": 1});
以年龄降序desc
db.user.find().sort({"age": -1});
限制返回记录数量limit()
返回1条记录
db.user.find().limit(1);
返回2条记录并打印信息
db.user.find().limit(2).forEach(function(users) {print('my age is ' + users.age)});
限制返回记录的开始点skip()
从第1条记录开始,返回2条记录(limit 1,2)
db.user.find().skip(1).limit(2);
查询记录条数count()
db.user.find().count();
db.user.find({"age":"56"}).count();
以下返回的不是2,而是user表中所有的记录数量
db.user.find().skip(1).limit(2).count();
如果要返回限制之后的记录数量,要使用count(true)或者count(非0)
db.user.find().skip(1).limit(2).count(true);
今天到这里为止,明天继续学习集合函数 和 其他操作(更新操作)
现在所有的学习都是在命令的情况进行的,后面将学习使用java代码进行实现。
相关文章推荐
- nosql mongodb 学习-----第三天 高级操作之聚合函数、游标、去重复及分组
- SQL server学习(二)表结构操作、SQL函数、高级查询
- mongodb的命令行操作命令详解(增删改查、高级查询)
- nosql mongodb 学习-----第一天 安装部署 基本命令 基本操作
- mongodb的命令行操作命令详解(增删改查、高级查询)
- [整理学习]Hadoop基本文件操作命令
- Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定
- Hive学习之路 (十)Hive的高级操作
- Redis学习手册(Key操作命令)
- JavaScript学习与实践(26)(高级操作)
- 命令学习_IPCONFIG: DNS cache操作
- 【MyBatis学习10】高级映射之多对多查询
- Redis学习手册(Key操作命令)
- MongoDB的使用学习之(六)MongoDB的高级查询之条件操作符
- mongoose 查询操作的高级应用
- Elasticsearch学习笔记1----常用查询操作
- Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠 .
- Linux 常用命令学习-文件及文件夹操作相关命令-持续更新
- 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
- hive学习笔记-高级查询