首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Mongodb基本知识和常用语法(8)

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);
返回列表