mongodb类似sqllike查询

更新时间:2023-07-07 17:52:32 阅读: 评论:0

mongodb类似sqllike查询⼀、查询
find⽅法
查询所有的结果:
lect * from urs;
db.urs.find();
指定返回那些列(键):
核减
lect name, skills from urs;
db.urs.find({}, {'name' : 1, 'skills' : 1});
6399补充说明:第⼀个{} 放where条件第⼆个{} 指定那些列显⽰和不显⽰(0表⽰不显⽰ 1表⽰显⽰) where条件:
1.简单的等于:
nt from my ipadlect name, age, skills from urs where name = 'hurry';
db.urs.find({'name' : 'hurry'},{'name' : 1, 'age' : 1, 'skills' : 1});
2.使⽤and
lect name, age, skills from urs where name = 'hurry' and age = 18;
db.urs.find({'name' : 'hurry', 'age' : 18},{'name' : 1, 'age' : 1, 'skills' : 1});
3.使⽤or
lect name, age, skills from urs where name = 'hurry' or age = 18;
db.urs.find({ '$or' : [{'name' : 'hurry'}, {'age' : 18}] },{'name' : 1, 'age' : 1, 'skills' : 1});
4.<, <=, >, >= ($lt, $lte, $gt, $gte )
lect * from urs where age >= 20 and age <= 30;
db.urs.find({'age' : {'$gte' : 20, '$lte' : 30}});
5.使⽤in, not in ($in, $nin)
lect * from urs where age in (10, 22, 26);
db.urs.find({'age' : {'$in' : [10, 22, 26]}});
6.匹配null
lect * from urs where age is null;
db.urs.find({'age' : null);
7.like (mongoDB ⽀持正则表达式)
lect * from urs where name like "%hurry%";
db.urs.find({name:/hurry/});
lect * from urs where name like "hurry%";
db.urs.find({name:/^hurry/});
8.使⽤distinct
lect distinct (name) from urs;
db.urs.distinct('name');母亲节英文
9.使⽤count
lect count(*) from urs;
unt();
10.数组查询(mongoDB⾃⼰特有的)
如果skills是 ['java','python']
db.urs.find({'skills' : 'java'}); 该语句可以匹配成功
$all
db.urs.find({'skills' : {'$all' : ['java','python']}}) skills中必须同时包含java 和 python
substantial
cristiano ronaldo
$size
db.urs.find({'skills' : {'$size' : 2}}) 遗憾的是$size不能与$lt等组合使⽤
$slice
db.urs.find({'skills' : {'$slice : [1,1]}})
两个参数分别是偏移量和返回的数量
11.查询内嵌⽂档
12.强⼤的$where查询
db.foo.find();
{ "_id" : ObjectId("4e17ce0ac39f1afe0ba78ce4"), "a" : 1, "b" : 3, "c" : 10 } { "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }
如果要查询 b = c 的⽂档怎么办?
like
> db.foo.find({"$where":function(){
for(var current in this){
for(var other in this){
if(current != other && this[current] == this[other]){
return true;
}
}
}
return fal;
}});
{ "_id" : ObjectId("4e17ce13c39f1afe0ba78ce5"), "a" : 1, "b" : 6, "c" : 6 }
sixty eight
1 ) . ⼤于,⼩于,⼤于或等于,⼩于或等于
$gt:⼤于
$lt:⼩于
$gte:⼤于或等于
$lte:⼩于或等于
例⼦:
如查询j⼤于3,⼩于4:
db.things.find({j : {$lt: 3}});
db.things.find({j : {$gte: 4}});
也可以合并在⼀条语句内:
2) 不等于 $ne
例⼦:
db.things.find( { x : { $ne : 3 } } );
3) in 和 not in ($in $nin)
语法:
例⼦:
db.things.find({j:{$in: [2,4,6]}});
warehou
db.things.find({j:{$nin: [2,4,6]}});
负责人 英语怎么说
4) 取模运算$mod
如下⾯的运算:
db.things.find( "this.a % 10 == 1")
可⽤$mod代替:
db.things.find( { a : { $mod : [ 10 , 1 ] } } )
5)  $all
$all和$in类似,但是他需要匹配条件内所有的值:
如有⼀个对象:
{ a: [ 1, 2, 3 ] }
下⾯这个条件是可以匹配的:
db.things.find( { a: { $all: [ 2, 3 ] } } );
但是下⾯这个条件就不⾏了:
db.things.find( { a: { $all: [ 2, 3, 4 ] } } );
6)  $size
$size是匹配数组内的元素数量的,如有⼀个对象:{a:["foo"]},他只有⼀个元素:
下⾯的语句就可以匹配:
db.things.find( { a : { $size: 1 } } );
官⽹上说不能⽤来匹配⼀个范围内的元素,如果想找$size<5之类的,他们建议创建⼀个字段来保存元素的数量。

本文发布于:2023-07-07 17:52:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1084018.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:匹配   查询   元素   数量
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图