cncml手绘网
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
[打印本页]
作者:
admin
时间:
2019-5-10 15:00
标题:
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
9 @* l( ^2 j0 U* O4 ~
9 Y+ c: G6 B: G
db.getCollection('student').find({'age':{'$gt':'20'}})
) y) c/ D( m8 ~
2 G& w( d1 c1 y" L/ y7 J. B7 N. O/ h
3 t0 ~9 Z/ Y. m- v8 B
6 ?/ C( _% ?9 H' w
$lt < (less than )
P* G& Z3 [8 c1 _& j9 ?
/ F2 I2 L& p6 i) `/ [( {
$lte <= (less than or equal to )
+ @$ f- \4 E' q, u$ ?+ A$ |" ?
A. h8 Q- `0 z" {, f. I5 D# X8 K
$gt > (greater than )
/ P! m. [$ K7 P/ B
& j5 G' s0 j( d _
$gte >= (greater than or equal to)
( ]7 ^5 ]- ]' S1 h8 [/ J
+ m+ G* G4 P! c# J7 L. q: h
' s' e7 r; t$ `; t' S
$ x% W2 V. u& s) L* \
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
; }2 S* Q5 A' B5 j4 R8 w. }; t' A
9 R: ~! o. s- P& Y! I; R- R
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
; c1 g0 S8 z3 o$ E5 F# I/ }
& q! h8 ^7 ^# q4 O
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
, L( G+ [/ o1 u# J5 M5 T7 e
* {$ K# z; s2 x# ?
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
" H/ y" h1 e) Q. N2 b; |; e# z
( I: V- Y2 L; B# @' ^$ V
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
( T: @9 o: G& W. c5 f
1 `$ O- n% i2 O! Q* [1 k& j
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
, w' O) Z: u7 ^, \( c1 F4 |
' E! q1 }) [( X3 \6 p. h5 b* B( \
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
7 k, L( w3 k3 e& _' B
1 |9 B$ ? q4 R3 I9 M7 ~
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
+ t8 l; d5 L" s# p! U
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
W) v+ E' {5 I5 Y4 w# C: m5 I
! A s( D* ^. ^. S& p3 l3 C# c
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
' { i# J& l$ `% h5 z
: B) U% k4 h: m) _
$all
如果您希望找到一个包含这两个元素的数组
[
'tags'
=>
[
'$all'
=>
[
'red'
,
'blank'
]]]
3 y4 A# W' c& a; K
7 U7 [: A6 s# a, q6 _; w
$elemMatch
运算符在数组的元素上指定多个条件
'dim_cm' => [
'$elemMatch' => [
'$gt' => 22,
'$lt' => 30,
],
],
! `( w l6 V9 F: k g
$size
运算符按元素数查询数组
[
'tags'
=>
[
'$size'
=>
3
3 F3 ^7 Y9 h8 L$ j0 s' w
8 K5 `( s" {$ v* }$ _6 z
/ x: v8 m: H9 O- W ^$ o- j
8 Z$ u; w8 I3 K2 x
: {7 f, E% u3 e4 W @% j1 A
. l* G" H+ h- b# v/ ]
+ E7 B9 d& g4 N1 y4 y3 W4 s
, y+ g3 A2 I0 R- ]
; w" G+ z/ [: u; _: E- d
组合使用方法如下:
- x0 Y B6 G% B7 L8 Q$ B9 {. i) S
; N* a9 g8 c5 p0 }7 t2 ]
db.user.find({"age":{"$gte":18,"$lte":25}})
. e0 b0 A* u, } G4 Z
1 {9 N7 R" z: d/ F# X
# @' l/ O6 j3 P h
! H% o _9 s: Q+ V) K
对于日期的条件查询方法:
/ R- Q2 W" {4 N
0 [4 T# d! Z$ u6 t+ z
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
7 o1 ?% {, U3 _- |
' s; V( `2 g; d5 U# u$ l& W' y
( X& V: ?% h# v' g3 [# S
3 ^$ H2 a# J+ [" z4 Y
2) 不等于 $ne
6 c- f4 o6 D6 g1 [
! m' P* y0 G* z5 }" E9 O/ `- M
例子:
" ]! C$ Z+ m! L9 I/ J! k
* A E$ W4 @' i& p% ?6 [7 n/ I
db.taobao.find( { age: { $ne : 10} } );
G6 y. K! j: v) O* F# c9 r) G
php7 查询mongodb方法大全
1 n0 j1 K9 t. n& I2 v
+ y0 H; l- B7 G6 V4 o; M7 q; L
( o( e% {# b* J/ L/ L$ D
. n. H* {" W7 C1 j$ a+ Y" @/ w1 w
, W; K( r2 q+ d" t1 @
& x: y, ~7 d) s( S. _( P
8 l: y q7 { [2 y ?' m+ A
6 l! D% ^' m4 [ V0 |
6 Y; f+ [6 ?3 k; C8 p+ }& C6 B
) g4 o9 @! h7 b& [7 X u# J
, m. z: i3 r K8 s) K' ?- y; o7 H) x
* n7 x1 D( y1 s4 X
. V0 Y* }/ B. }; \. X/ _' |
作者:
admin
时间:
2019-5-15 11:52
查询中的 and or
% `( ?( t( c- Y7 Q
//and
0 B8 {# A4 e3 `. K) @
{key1:value1, key2:value2}
+ u5 g. O" ]% ?: G% Z3 W- G' W
[key1=>value1, key2=>value2]
; @% }; R% q+ i+ _8 z4 G4 w: d+ t
//or
复制代码
9 d, x2 D' x' P6 ~
- y' s+ ?7 D0 T" K/ T
作者:
admin
时间:
2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序 1为升序
欢迎光临 cncml手绘网 (http://bbs.cncml.com/)
Powered by Discuz! X3.2