MongoDB基础语法

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的字段记录

db.things.find({age:null});
查询结果:
字段age包含null值的记录
{
    "_id" : ObjectId("58e63897db71ac6fd7d1e936"),
    "age" : null
}

不存在age字段的记录
{
    "_id" : ObjectId("58d284a2d8bfa3ed1c0b07bf"),
    "name" : [ 
        "wuwenlong", 
        "wwl", 
        "dragon brother"
    ]
}

(15)对“null”值处理,查询到包含字段age且值为null的记录

db.things.find({age:{$in:[null],$exists:true}});
查询结果:
{
    "_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]范围内的记录

db.student.find({age:{$nin:[2,4,6,8]}});
查询结果:
/* 1 */
{
    "_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()查询集合记录条数

db.student.find().count();

(23)skip(3)跳跃前3条记录,从第4条记录开始查询

db.student.find().skip(3);

(23)limit(3)限制返回记录数,返回前3条记录

db.student.find().limit(3);
查询结果:
/* 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
}

(24)返回集合中限制记录数count()返回集合总数; count(true)返回集合限制数;count(非0)返回集合限制数

db.student.find().skip(1).limit(2).count()//记录数为4
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表示降序

根据age值升序
db.student.find().sort({age: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
}

根据age值降序
db.student.find().sort({age:-1});
查询结果:
/* 1 */
{
    "_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去掉重复值

db.student.distinct("age");
age等于35的记录有两条
查询结果:
[
    6.0,
    7.0,
    8.0,
    28.0,
    35.0
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值