cncml手绘网

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

作者: admin    时间: 2019-5-10 15:00
标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
' e) S9 @0 R- ^' {5 `0 ?
' ]; T" L; M, i. S, V- r8 qdb.getCollection('student').find({'age':{'$gt':'20'}})
# f+ C; ~$ l& _  v
  v0 O9 h6 P2 W. E$ O2 j3 D( b' d3 o
: {, B$ c0 Q8 E0 L
$lt    <   (less  than )" O: R* P# e  x% R: \' A: g
7 @, Q  H/ z6 H2 i# l  s" j+ C9 W
$lte    <=  (less than  or equal to )/ b  k, |2 A* z) B  s) T
, ?' r3 Z* |. I/ n- @
$gt   >    (greater  than )
! Y/ n( c' ~! P2 Z+ j8 o. }" d3 h# X7 _3 |8 _2 `$ N# h6 h6 d6 ]3 Y# ~
$gte   >=    (greater  than or   equal to)
+ D' f% c& \. B+ ?/ h0 M3 d9 M# R
$ q4 O5 o1 n) C' h& S
3 E& Q8 G' B1 c! Y$ c/ O
5 z2 s" r2 F! U$ne  != (not equal to)不等于  {'age': {'$ne': 20}}" k0 w8 b$ Q6 j2 R
8 M- S, b( n7 Z8 U4 H" o+ w0 \
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list  l, x: Q- G0 y9 H0 e3 q& J4 U
/ D3 A% c! h1 o
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list! q# k5 p8 N4 H8 \* G  r4 p
4 M" @8 y9 a7 C& h4 M1 l3 [
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
- x: d4 s+ l- u6 F  E2 G, r/ D, U
: H$ f+ z7 r; a. n$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
: h8 [* g8 F' U
2 S* E9 K+ d. w0 ~$ d1 M$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int; T& |+ i6 D! {2 e/ K- s% {3 k) e: U/ s

; |$ O# V% ], i  G8 y# x$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
" K  h5 _: o2 A+ S% V3 E( i
4 V# K/ m+ W' l" @2 I9 M$ a- U$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
9 C5 U$ j' |! n: k$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
: j6 l" T% Q- {& i+ K
* N- X9 ~, B: S" U0 A$exists 键是否存在   {finaGoalLine:{'$exists':true}}# {* `1 Z, ^: Q

; A4 v) y  r) j% b" K$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
$ S, _  B% {+ Z+ e$ e3 X& x7 r3 I" @8 J. W% P
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
+ b$ \5 q5 {/ ^4 M$ Q& o* W$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ( R* v1 X$ Q6 G1 K! P& C4 j
3 |' m5 o* u7 F. `- c

  `, S# Z; n  C. d
8 m8 i- E  Y# s+ p
$ \: v  I5 g( }4 K, k% K5 }

. B& G8 @! V; p  j
' B+ p! {/ _7 _1 ]# X+ e

, ~& C4 x1 Z% R6 K2 D* B* E+ Q7 b# M! [, ~
3 U4 r! X+ ]5 m1 x& `* x组合使用方法如下:
4 ]2 S6 e6 x4 F9 Q* I1 _- X/ y) \+ N9 L- Z
db.user.find({"age":{"$gte":18,"$lte":25}})
3 m! i; \8 Y- K9 U: l7 F1 w( k4 P! g3 w$ U

" O4 ]' a2 S" s3 p8 w! h4 r, N
% _4 q7 U8 u) R; p% f2 ^2 w对于日期的条件查询方法:
, Z/ O- I% H5 o' e! [! h2 r, Q  q* V  T
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
0 |/ @3 O7 K, b; P% @# t. q% Z
# g* b5 C! h6 o# C) _6 O" u; N% N2 Y, D6 |4 k+ e6 M
8 V  Q% K9 h. t8 Y4 e0 G/ ^! B  a
2) 不等于 $ne% t; M2 O: [0 L# |
' z! M' u% A) G5 V: t, Y0 h
例子:
1 l% |; m7 x! y* F( z$ q8 k- F# _: ]) ?. Y$ `0 i& g& J4 C5 z( v2 N
db.taobao.find( { age: { $ne : 10} } );
! |5 P9 I6 ?4 G- r) G3 l# o/ hphp7 查询mongodb方法大全0 v6 j* V; _" O7 g  V5 ]' b

+ \, y) p4 U4 v: l6 e. d* u, q7 P4 Y$ N! [

0 M7 `" o& C/ l) d
2 Q+ }. K4 W! y' \1 @/ R5 B2 @* y5 I+ i+ k5 l) C& ~( r  x" Y. C

1 x  R, d; n" q3 p
, _) N. ^! t8 C8 E% ~6 Z
7 l7 q, ~; p/ o4 C0 I- ~
' U- g, d+ f9 v, ?- j/ V9 a) I$ L4 B4 E7 A" S

# c; ]% ]. M  p. [
- ~6 W/ X( y% F+ ]- l
作者: admin    时间: 2019-5-15 11:52
查询中的 and or: G$ z* Q# h: b: |
  1. //and) Z- w6 m% T3 D3 V
  2. {key1:value1, key2:value2}
    0 @  P9 X6 A: U9 i
  3. [key1=>value1, key2=>value2]
    ) f2 ?; T8 w0 ^, _5 C
  4. //or
复制代码

0 D+ `* Q$ {6 N
5 H% i  K* ?, @! T! m3 I1 D6 R# D
作者: admin    时间: 2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序  1为升序




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