cncml手绘网

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

作者: admin    时间: 2019-5-10 15:00
标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:
8 A$ t1 a1 U1 ?6 z( A  v; n' F, H5 E6 z$ H" J& x; B+ h
db.getCollection('student').find({'age':{'$gt':'20'}})/ Z% T3 @' [; m' v# e- n: U' z

1 `& \; w4 B3 E
+ G9 P4 C" d* c, W9 z0 q/ R8 t' S) r0 I* v3 G- P
$lt    <   (less  than )% R6 c& b2 H0 N3 V; \

+ P1 u- b$ V1 \$lte    <=  (less than  or equal to )  \7 _7 X, U  t' ]1 T4 q
! l- }" _# }0 J9 J" F  W: q
$gt   >    (greater  than )( M; q. i) a* {! S

% N' p; c( u1 J) a' W$gte   >=    (greater  than or   equal to)
; P0 h/ B0 q( b! N. u" y0 ~! F/ z0 b' m1 I& F0 o
- p, `2 Y8 e" a  d; _

$ @8 Z; L7 x1 q- U8 z, B$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
! g- c/ w! N6 C' h2 q
5 O6 N7 P6 I, r( v3 `1 c8 t$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
! c7 J' h, \: h7 G' E
; J/ w3 ~$ @" `# t- _$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
' y2 Z# J+ ~* m" q7 i# {
% f+ M0 {. ]* l$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
+ k! {% X3 ~- j" t9 a0 V3 \/ n& a3 A. u! y3 D
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在0 Q: O0 Y  G3 C2 q5 r
9 j% F# r; v! T) j) x
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int& m$ b2 s" m- H9 e2 s. J- v! q, _

! K1 L) w, v5 j3 `8 B$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
+ p( q* o! O( S7 g
4 m9 b9 ~9 w6 l% C9 F0 M  {$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
+ ?' z) X; h  e" @4 n# w$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
( {7 u! Z: S" m7 I5 F( p
, f; c) b* H9 k% l& q; Q$exists 键是否存在   {finaGoalLine:{'$exists':true}}
. S, W9 X% l$ o3 C) v- V: J4 z# f6 s" Q: z
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
: V6 H/ P7 S+ E9 B" ]  I: J& A3 J* x  o; f( f# N, M7 j( \
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
: }" W' P4 G; g7 C  \$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 * U3 `, j: B: g2 C; M

/ t# f; v. q7 Q7 Y
# D5 t7 m5 I; S, V1 n

6 s8 z& x7 e& u2 R/ `* @$ b0 w
3 k$ V: B+ E& j
7 e/ N' `3 P5 ^' r8 Q( M; g- P6 W+ E
! Z+ u# X% D! y' L( R+ g% K, k9 p* [
& S  ^  p1 {( a4 U+ W; `0 r
$ i" A5 W- D: k5 {
组合使用方法如下:; f! s1 {  L) E7 U, k+ s6 j. c

2 b+ {% J9 `7 D1 M  A4 Q: adb.user.find({"age":{"$gte":18,"$lte":25}})
; P9 |! s; M1 G1 t3 I  L: M7 }, e
5 E2 T  v. O6 y$ L: t1 C: U
; ?  @5 T6 t, l8 m  b: B" L, U& Z, N% _; l
对于日期的条件查询方法:" Y+ e$ }# n0 e: P* O3 d
8 w  x3 ~0 c* T/ [; H5 a
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})! x* q- w0 u1 q/ u/ Q# }3 ^& B6 ]
) u2 Z- s  I! `* i9 {  d2 r
. A4 F0 b9 b, t5 N

( E) B1 e" e# n3 O2) 不等于 $ne
7 [' s. Y- l0 R. v- _  I
2 \; F$ p" y7 l+ A例子:" A7 s% I1 D* r+ T; ?* R( r
) m3 r8 A" Y/ n, r" P
db.taobao.find( { age: { $ne : 10} } );9 w5 t" M: w/ \/ N
php7 查询mongodb方法大全$ A9 p( C* N( ^/ ~  U& A$ Y4 }
+ F" X! W5 V: Q5 l
: s3 K% k5 s3 _" ], n) \

" ]5 F, w% m: p3 |5 Y- ~$ L% a! ~9 j0 O  R
$ _$ G5 H# W5 v
6 x; D  U3 F% W
& e: @, d& D% `+ d- P: |# t
1 W7 t) P- j; b! Y" f* w' [1 ]: m# z. e
7 k, ^$ R* B4 S' H& B
- f, q3 `1 r2 j! C/ y7 r4 G
; S$ ], p7 L' f% i3 w/ ~  w/ D
( o3 @" r: k, v/ U' [

作者: admin    时间: 2019-5-15 11:52
查询中的 and or6 p; [& t7 P( K1 `% G: M4 H! o
  1. //and
    8 c1 e5 J9 G4 o: c
  2. {key1:value1, key2:value2}
    ! x4 W% r4 e" F  ^9 f9 U. N' F1 ^
  3. [key1=>value1, key2=>value2]5 a8 I# A! t8 X, e1 Z7 w  S& [
  4. //or
复制代码
4 G  q. D9 m4 q+ k
5 x( V3 Y5 A- s

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




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