cncml手绘网

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

作者: admin    时间: 2019-5-10 15:00
标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
5 Q5 s" z& V! z. ?; Q
- Z2 z' X. s( ]* r  adb.getCollection('student').find({'age':{'$gt':'20'}})
& P  c. ~7 |- Q' u3 C
) t0 N6 u( ^; ^9 ^, c2 s/ a# b9 u0 G2 O, U1 w. t0 @
& n2 ?* {& \4 G+ b1 l0 U
$lt    <   (less  than ). M: P5 K5 h5 ?/ t4 R$ ?
$ k$ i: M+ k8 R5 @7 P2 ?8 y& ~2 U9 x' s
$lte    <=  (less than  or equal to )
( {% G1 w# N8 U& Q8 Q2 w5 S. S0 J3 v- N8 F/ h! ?+ E, U' {9 ^: I
$gt   >    (greater  than )
8 S9 `  [6 x8 H% I2 O5 F; j" M) d& C1 b, x$ H- S  L' v7 v9 d+ L
$gte   >=    (greater  than or   equal to)6 N5 X) p% Z, x" b0 F2 ^: L

: }" }2 q7 M& W$ S( t3 h: W7 K2 H$ P8 d
& f1 i* g9 {, a3 H
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
0 J1 F3 m9 U2 o, x1 ^2 N2 c
( @. _. [& O' Z/ O6 l$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
: ?9 z  b. y) ^/ M( I" W: T, r6 }
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
% n7 T& u, J2 p0 ]" o5 t4 U6 O4 x0 t' g: a! n$ S* v
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
" Y! x; a' Y8 v, \9 X0 f$ j$ ?' x. h3 o
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
$ K: F. A2 x& O2 n( y, a0 _& b+ @# i0 W6 {) u, y  D6 K( I
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int: s/ r5 Z+ j# S( @- V8 f

# D8 t+ C* b" t$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串) m$ k. g( r" [  t( o
4 O1 B2 _" ?+ x+ W3 s5 q
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
" i* M3 v1 Z. w! n' O; M3 `$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);! c2 z( {1 }* j1 m

) B6 U3 C, m3 X9 v* U' M$exists 键是否存在   {finaGoalLine:{'$exists':true}}6 |$ i$ m6 Y: B$ ?( X" z  ?% k

* m$ S3 u$ Y/ m" U/ V) ]7 \( Q$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]4 ^/ _7 W+ d5 s: K* V
" z! F8 c/ u# i* C: ?
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],+ F/ X' c* Y. D4 S  i
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 3 v( i' o5 n# c6 T1 \; i  w% x/ N
  s- l1 E- `1 X! Z
$ Y* x) k! I4 u; p
& C5 h/ M# [9 O1 f& n% b

' C: q9 ]% |/ R6 I1 `# `1 y6 y& W. |8 \& b  w
& `: j8 J" T1 r" C+ n' B
. J4 e" @: _0 u; Y2 y' h6 J) K! L
1 d# ?! W5 {+ o
组合使用方法如下:* q6 j$ l4 D6 O9 {- C1 M' R/ W

9 g* F8 j* {) I- Rdb.user.find({"age":{"$gte":18,"$lte":25}})! X9 u* T9 m7 l: k3 [( u* J. E) F6 A9 J

0 D* e5 a: d0 s$ }( \; b/ c7 Y/ z  L' g6 r( {$ X
$ z7 ]7 h3 Y* `, R! t) _! d
对于日期的条件查询方法:+ w, P8 a+ R. L( ]
, V7 j8 T5 [& W
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})) N, i& u3 k! w  m: m6 g% S
3 P% K- d: o$ Z) B% D
- r4 L: g" f/ J

1 r" f4 X% X' o/ d2) 不等于 $ne
! \; f' }$ M+ ]1 k9 t+ M5 u! p/ K8 c: ]' d5 Y3 Q5 T
例子:/ d8 {  R- B& g0 I3 f# r7 |, ~5 P. }

/ z1 ]6 R& l( [4 Q( n/ K# ldb.taobao.find( { age: { $ne : 10} } );# K! y# B4 f  ]) D% Q1 `
php7 查询mongodb方法大全9 u% c) K* @# t( V8 J+ v: j* F) o
/ v9 o) S8 ?7 J  M. |  T1 H/ \
, s  X6 u& n' m" I4 o) w; Y
: j3 J5 M$ ~& o3 t" N  R
+ _$ Z2 @- `6 A8 q7 a3 N: I0 W

2 A1 \4 ?2 B) Y  D0 u% R" i9 v; i( r2 L& H0 g

5 u: ~" t/ p4 A4 g# A5 y+ V; |4 [% r) Y
& x" @1 w7 z- B: v2 x0 Q. }

( Y6 n3 D9 U* x( g
5 w" I" p) r: _, R- u- y; M* T& x. p' x% Q6 S

作者: admin    时间: 2019-5-15 11:52
查询中的 and or
- ]1 W  u& F; ?
  1. //and
    . b! i# k% @6 g! t8 \, f
  2. {key1:value1, key2:value2}% D% b1 ~: F6 j1 y7 m, y
  3. [key1=>value1, key2=>value2]
    ' Y# R- ?# W' B- U! f% a: I
  4. //or
复制代码
+ U: G$ x7 p. J6 N. O& s3 a
& g( }# Q, f5 {& g. y% x

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




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