管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:8 g+ ^# q" D) r" @7 U
2 m' W* e# q3 A- h( vdb.getCollection('student').find({'age':{'$gt':'20'}})7 ?' j {- x2 N" r
7 c7 S4 @6 P# n3 [! P, V" o
+ a+ L" }5 D8 G- d4 A9 K+ n$ M. {6 I
$lt < (less than )" P- O1 u( L% ]
* K: s: X9 o; {$lte <= (less than or equal to )
3 G- ^4 |1 T6 X! q! L& m- n* K5 I# j$ o3 j5 y
$gt > (greater than )
d9 x' N& V/ ~. L" p. \3 |' U1 k3 h, X$ Q5 O
$gte >= (greater than or equal to)1 X/ b. a/ q! f& P/ E9 b; b
8 L" ~) q5 \3 w- M2 f
+ b7 y# L1 A- A, Q W- a! \' a9 U/ K, Z& F F
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
$ L# s: w: ^* T- g( a
' z2 o8 t' q5 {8 c+ s$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
1 X1 m9 `- F& o9 x% F4 Z2 Z9 l6 l
* W5 B7 H- |/ h, d4 h. y0 E( E. T$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list8 c2 v' v- D3 S. |
2 N e8 [# S9 ]6 d
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字8 q4 B. t) I) w, q( T2 }' j3 j
. F' a2 |& H: j0 u9 g7 y. `# z, J
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在" W! f# { }+ f0 x
. ?* H6 L+ V8 w \* @0 x. e' j
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
0 r# U8 m$ _1 _2 @# O; G2 d
- p |% }& Q+ u2 l& \$ o" E$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串- H1 w1 t9 r# f/ p0 d8 C' u! ]
6 X* x" U6 A0 r$ `/ v$ q4 F
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
; f/ l8 `& ` q" P) s4 S$ \$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);6 M& B6 N h# e8 I2 [$ \3 W4 ~
" c; d! f1 {3 K3 L9 ]/ _0 [, ~$exists 键是否存在 {finaGoalLine:{'$exists':true}}9 |4 @) j6 M7 z* J
' B- O- o' A3 D t4 H6 h$ J' j$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
6 w, `+ f, Q" s( J2 ?' d2 D! Y2 }$ h; ?1 R
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],& Z; G5 V6 _6 E! M4 J* {; Y
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 + w' d# ]: @ i0 c7 N1 J! \
3 _/ ~9 V$ i4 P, o3 F u5 i* x, G1 f. e
! j) X0 Q) {" B
* O* f5 S& }5 l$ r' {2 c
! W; z& r4 ]# T7 X' K/ U) e) b' q2 ?. Z8 ^) u
" o( C( `0 P' p9 Q5 `; F+ E
+ K7 \/ x5 j8 A; c! t
" G0 o, w9 K8 G3 ~
组合使用方法如下:
( m& K& @, D6 w& @1 @! y( k8 W
3 P/ [- j, d. Rdb.user.find({"age":{"$gte":18,"$lte":25}})4 R) J! x, d/ Z
9 J9 P+ n H' o, O( v" v$ a
8 W9 H3 l+ P% O6 D5 H7 Q: z! d( j% m X; D" M
对于日期的条件查询方法:, [ M% U m& v* V/ y+ a1 B. ^
& M3 w. P4 y, I) h4 [' mdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
9 o6 k; }2 N9 M) j- {( v. T* i X/ Y ] h& U1 b
/ p% ~: C" y$ \3 F; {: D
: F+ { O7 }- W! R v5 k. f/ C2) 不等于 $ne$ C1 g9 {' j0 J. F6 t
- x, Z( H3 l7 S* {例子:
$ j; v" a; k+ u- g# }
) o% B4 d8 p1 G0 e3 R& r p1 r/ Idb.taobao.find( { age: { $ne : 10} } );
7 }0 \: W$ r) G Y5 b* ]- _) R" o- P0 Hphp7 查询mongodb方法大全
8 [6 C' X5 b9 W6 J2 s* @9 ?% G0 F; V, q( s# ^4 W: [3 p, q+ }
6 U( m7 F* C' K: E
2 \' H3 [. ~* ]! a5 m) d! l& F4 l- J' ]& z: a
2 n; O7 x3 l$ M& L ^$ ?
! S x1 B: |. e5 u7 X, u. A, F
. R3 l1 q4 {9 n# F! E3 q: j7 X8 G1 ]+ S/ R4 q6 f- x6 _6 H
- O* b2 h+ S# Q# Q9 U* u
7 C$ J; d% G/ I7 s- c. ~* v6 o6 {+ K& k$ J! p* I% V; W; a
3 N- {& C" e" I- l+ D
|
|