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: Gdb.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; K7 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 Z1 {9 N7 R" z: d/ F# X
# @' l/ O6 j3 P  h
! H% o  _9 s: Q+ V) K
对于日期的条件查询方法:
/ R- Q2 W" {4 N0 [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 Y2) 不等于 $ne6 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/ Idb.taobao.find( { age: { $ne : 10} } );
  G6 y. K! j: v) O* F# c9 r) Gphp7 查询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
  1. //and0 B8 {# A4 e3 `. K) @
  2. {key1:value1, key2:value2}+ u5 g. O" ]% ?: G% Z3 W- G' W
  3. [key1=>value1, key2=>value2]; @% }; R% q+ i+ _8 z4 G4 w: d+ t
  4. //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