Board logo

标题: Mongodb基本知识和常用语法(8) [打印本页]

作者: look_w    时间: 2019-4-16 18:54     标题: Mongodb基本知识和常用语法(8)

30、对于字符字段,可以使用正则表达式
查询以字母b或者B带头的所有记录
db.users.find({name: /^b.*/i});
{"Name":/中铁/}

31、$elemMatch(1.3.1及以上版本)
为数组的字段中匹配其中某个元素

32、Javascript查询和$where查询
查询 age > 18 的记录,以下查询都一样
db.users.find({age: {$gt: 18}});
db.users.find({$where: "this.age > 18"});
db.users.find("this.age > 18");
f = function() {return this.age > 18} db.users.find(f);

33、限制返回记录的开始点skip()
从第3条记录开始,返回5条记录(limit 3, 5)
db.users.find().skip(3).limit(5);

34、查询记录条数count()
db.users.find().count();
db.users.find({age:18}).count();
以下返回的不是5,而是user表中所有的记录数量
db.users.find().skip(10).limit(5).count();
如果要返回限制之后的记录数量,要使用count(true)或者count(非0)
db.users.find().skip(10).limit(5).count(true);




集合中的List列表元素and查询


如图  如果是集合中的 一个列表 我们需要多个条件查询时 发现使用and 是不起作用的。

查询validStartTime大于当前时间,并且versionLimitList字段中的clientId属性值为109和platFormCode属性值为2

这个时候其实应该使用elementmach

java 中的 用法:

    Criteria criteria1 = Criteria.where("validStartTime").gt(new Date()).
            and("versionLimitList").elemMatch
            (Criteria.where("clientId").is(109).
            and("platFormCode").is(2);




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0