cncml手绘网

标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于... [打印本页]

作者: admin    时间: 2019-5-10 15:00
标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
$ e9 H1 [, m8 T0 u2 m* e9 A! u$ x6 q4 }1 g! y6 I1 Y4 J4 r7 Y
db.getCollection('student').find({'age':{'$gt':'20'}})$ q, o! U8 R5 \" z' O) g3 O

& J) p. q7 b7 t4 U. b- |; X2 ]" f8 v) `4 K* [- O
( N5 A8 p3 P; }0 m1 R# }6 I
$lt    <   (less  than )
3 e, _, P4 I3 i8 w+ O" i1 Q
- z8 o  n# _) `7 a7 S$lte    <=  (less than  or equal to )" H8 t9 p& @7 o/ L' p# E; \0 d+ T5 \

% B* b* h5 v! {; ~! }1 x8 Y1 T9 y$gt   >    (greater  than )# Z, \  K4 ?' H3 \% L. R

5 s* `' L/ d5 I# {1 F) p$gte   >=    (greater  than or   equal to)- S- o) ?- Z6 \" {6 x' v; b

( M* w+ J+ S" M3 m
  _6 x7 B& K3 i. k9 p  h# e# a
' A2 j: i( `6 s3 i$ne  != (not equal to)不等于  {'age': {'$ne': 20}}6 x7 |, u9 R- Y6 a& r) n' e
, j- @* e( }) M
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
8 C: W% x' A5 `% h7 Y7 W7 Q; Z' S, s9 j* l# W) A& D. B( u* |0 }
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
5 ~: w( y6 q3 p" Y5 ~& F5 I$ Q
% G7 W! d* S! a  {7 Y! b( b# r$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
4 x4 p' h' c# V' X
3 D$ [2 P1 q% U: Z$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
4 `9 X( e4 m7 V" u- G# _' b6 R. J" @
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
1 p, W5 Z# `- j9 Z0 w4 q+ R% k+ \, c# ?) a  t' I
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
& L9 Q: u$ k. I. i9 ?7 A/ I% V
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
2 |2 ^# X4 }( [$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
0 U" K) G$ {5 E( H. R6 R3 n* L* R# Y* `- @! F$ m! Q
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
4 G2 {! T! v7 q, G9 P! b% L$ ~3 P: h* w7 r- G" E
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]. P3 ^( `4 m( }8 k5 e
$ \4 U( O! \' u
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],, Z- w4 \5 q+ q' G3 s. O
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
# Z$ J( H7 I5 }* o: m/ w0 x0 z" t0 J- u& J
- I9 p) }8 R- _  q7 z$ k0 y0 c

! l9 K2 b. P& h. t3 L1 T, A0 [5 Y! Q+ e

$ _0 G9 ~( J9 u8 f
' x. V; _1 v% `; y+ Q

8 u% ?. T! q( Y6 k, Y! [" E5 q. X
/ i! I0 d! `6 u9 x4 o
组合使用方法如下:
& J* N1 T$ r; T3 c
3 F( v0 G. m( [5 Odb.user.find({"age":{"$gte":18,"$lte":25}})/ A) ]; p  r$ [3 V* H

9 [. Y* d' m1 f: t- a0 v" |, q: s0 S' ]. t( e; l; @

8 L0 X; f. l4 s3 J7 W5 a3 P2 o对于日期的条件查询方法:
0 a+ J: [2 g* d0 [7 @2 t2 ]6 t  U& P) G$ ]$ U$ J' a7 o' {, O4 G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
- E8 i" {8 R# A# T: o/ ?8 T, d  O* S3 Q5 [3 A7 g* t- O

/ b9 p" @: h' A% C  B. M( t7 z' ^  }
2) 不等于 $ne2 S: z! X! T( f2 z1 V) _
1 k) c0 S" }; O3 Z# H* L% V# K% w
例子:
) }, J* v4 F" z8 s" h- M6 B
: U) M3 i/ S& x6 ydb.taobao.find( { age: { $ne : 10} } );5 y( u  @- U. s1 g* W8 W- ]! u. |
php7 查询mongodb方法大全( t8 Z8 }( _" I

$ J1 f0 Q- r4 W. g5 R1 B- E2 g# A1 ~" T
, J5 B3 W- Q2 v+ W2 T/ [2 F( {

/ V+ e- h+ z8 z& w- Y. t9 f7 \" L' D! @8 [% W. d# @
9 v7 |7 L2 _" o/ j, ^; O8 E8 s
& ~) X/ ?( o" H5 `0 U6 h
; \$ z, u  y, Y, @# }

6 b& d; G0 l4 D. Q2 \+ ^% |7 \- O% M' E/ B1 w% M

7 A5 J' L* _( ^, S" t4 D
  x3 z( e6 r% ^% G' }" I2 V% k
作者: admin    时间: 2019-5-15 11:52
查询中的 and or
7 T. P8 e( {6 k6 r( {$ z4 d
  1. //and: V' I& Z* k3 I8 |/ e
  2. {key1:value1, key2:value2}" W, m/ v0 D8 X2 J1 ^% e& K
  3. [key1=>value1, key2=>value2]+ c* W) m: E; e" c
  4. //or
复制代码

9 ]1 e1 J; m& h1 f' S1 g/ J5 g/ l& i/ n0 c7 y

作者: admin    时间: 2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序  1为升序




欢迎光临 cncml手绘网 (http://bbs.cncml.com/) Powered by Discuz! X3.2