MongoDB基础语法
things表示一个Collection
(1)while循环迭代:
var cursor = db.things.find();
while(cursor.hasNext()) {
printjson(cursor.next())
}
(2)forEach循环迭代
db.things.find().forEach(printjson);
(3)toArray数组转换方法
var arr = db.things.find().toArray();
printjson(arr[0]);
(4)按条件查询
db.things.find({x:4};
(5)按条件查询,只显示字段“Y”的值
db.things.find({x:4},{y:true}).forEach(printjson);
(6)按条件查询,限制查询条件
db.things.find().limit(5);
(7)插入操作
db.things.insert({"name":"wwl","age":25});
db.things.save({"name":"xq","age":"25"});
(8)删除操作
db.things.remove({"name":"new_MongoDB"});
(9)更新操作
db.things.update({name:"MongoDB"},{$set:{name:"new_MongoDB"}});
(10)查询第一条记录
db.things.findOne();
(11)条件操作符
查询年龄小于20周岁的小伙子
db.things.find({"age":{$lt:20}});
查询年龄大于20周岁的小伙子
db.things.find({"age":{$gt:20}});
查询年龄小于等于20周岁的小伙子
db.things.find({"age":{$lte:20}});
查询年龄大于等于20周岁的小伙子
db.things.find({"age":{$gte:20}});
(12)查询字段“name”包含wwl、wuwenlong
db.things.find({"name":{$all:["wwl","wuwenlong"]}});
查询结果:
{
"_id" : ObjectId("58d284a2d8bfa3ed1c0b07bf"),
"name" : [
"wuwenlong",
"wwl",
"dragon brother"
]
}
(13)$exists判断字段是否存在
db.things.find({age:{$exists:true}});
查询结果:
{
"_id" : ObjectId("58b0f8e0bc00576659174ed2"),
"name" : "wuwenlong0",
"age" : 10.0
}
(14)对“null”值处理,既能查到字段age包含null的记录,也能查到不存age的字段记录
"_id" : ObjectId("58e63897db71ac6fd7d1e936"),
"age" : null
}
"_id" : ObjectId("58d284a2d8bfa3ed1c0b07bf"),
"name" : [
"wuwenlong",
"wwl",
"dragon brother"
]
}
(15)对“null”值处理,查询到包含字段age且值为null的记录
"_id" : ObjectId("58e63897db71ac6fd7d1e936"),
"age" : null
}
(16)查询age取模6,值等于1的记录
db.student.find({age:{$mod:[6,1]}});"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
(17)查询age值不等于7的记录
db.student.find({age:{$ne:7}});查询结果:
{
"_id" : ObjectId("58b15c37bc0057665917a822"),
"name" : "wuganfeng",
"age" : 6.0
}
(18)查询age值等于7的记录
db.student.find({age:{$eq:7}});查询结果:
{
"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
(19)查询age值在[2,4,6,8]范围内的记录
db.student.find({age:{$in:[2,4,6,8]}});查询结果:
{
"_id" : ObjectId("58b15c37bc0057665917a822"),
"name" : "wuganfeng",
"age" : 6.0
}
{
"_id" : ObjectId("58b15c37bc0057665917a824"),
"name" : "yanjingbo",
"age" : 8.0
}
(20)查询age值不在[2,4,6,8]范围内的记录
{
"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
/* 2 */
{
"_id" : ObjectId("58b15ef9bc0057665917a825"),
"name" : "tianxuelong",
"age" : 28.0,
"favorite_num" : [
1.0,
2.0,
3.0
]
}
(21)$size匹配数组元素个数为“3”的记录
db.student.find({favorite_num:{$size:3}})
查询结果:
/* 1 */
{
"_id" : ObjectId("58b15ef9bc0057665917a825"),
"name" : "tianxuelong",
"age" : 28.0,
"favorite_num" : [
1.0,
2.0,
3.0
]
}
(22)count()查询集合记录条数
(23)skip(3)跳跃前3条记录,从第4条记录开始查询
(23)limit(3)限制返回记录数,返回前3条记录
{
"_id" : ObjectId("58b15c37bc0057665917a822"),
"name" : "wuganfeng",
"age" : 6.0
}
/* 2 */
{
"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
/* 3 */
{
"_id" : ObjectId("58b15c37bc0057665917a824"),
"name" : "yanjingbo",
"age" : 8.0
}
(24)返回集合中限制记录数count()返回集合总数; count(true)返回集合限制数;count(非0)返回集合限制数
db.student.find().skip(1).limit(2).count(true)//记录数为2
db.student.find().skip(1).limit(2).count(0)//记录数为4
db.student.find().skip(1).limit(2).count(1)//记录数为2
(25)sort排序1表示升序 -1表示降序
{
"_id" : ObjectId("58b15c37bc0057665917a822"),
"name" : "wuganfeng",
"age" : 6.0
}
/* 2 */
{
"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
/* 3 */
{
"_id" : ObjectId("58b15c37bc0057665917a824"),
"name" : "yanjingbo",
"age" : 8.0
}
"_id" : ObjectId("58b15ef9bc0057665917a825"),
"name" : "tianxuelong",
"age" : 28.0,
"favorite_num" : [
1.0,
2.0,
3.0
]
}
/* 2 */
{
"_id" : ObjectId("58b15c37bc0057665917a824"),
"name" : "yanjingbo",
"age" : 8.0
}
/* 3 */
{
"_id" : ObjectId("58b15c37bc0057665917a823"),
"name" : "quxiaochen",
"age" : 7.0
}
(26)distinct去掉重复值
6.0,
7.0,
8.0,
28.0,
35.0
]