管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:% a* L; L6 I0 R
+ ]! B* Y3 I9 f. K/ n
db.getCollection('student').find({'age':{'$gt':'20'}})
2 l: D" [! [. w3 Y+ y- L# O6 c1 s# V1 P; O. `: \! t
" c6 n4 S: W/ d; w% ^9 N* i4 P. b
7 S! G9 o* w' l1 e5 s
$lt < (less than )6 e/ Y# v- z. g3 _( T# _& c4 |
( h5 r$ K5 ^6 e2 }) V8 S/ ~; @& z$lte <= (less than or equal to )
9 r1 [1 o8 y3 B6 d: [0 K l/ @& K/ c8 } R9 i7 \8 h3 @
$gt > (greater than )
! ]; l+ @* }/ v6 q3 P! z6 V& m6 g; U4 Y. E3 k9 B) i! a" c$ ~
$gte >= (greater than or equal to): K' n1 B0 j5 @" W7 x( G; K3 Y
/ D$ `; X- X2 X$ P6 F- h
9 B- u/ W6 B& v
& G# r4 E1 Q4 y) k$ne != (not equal to)不等于 {'age': {'$ne': 20}}
. E$ L( N6 J, H! l0 C- y3 B- g" h
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
: T! Z+ Z/ ^6 W7 y) \% ~
' R. P. q" N" s$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list) }0 r; P6 a. n1 P5 C1 H2 b% f
( `, s2 l: T( o8 g& U8 o) i- T. E
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
1 e, [- h. u8 s( U: `
4 k; a0 r, Z* v% Q( ~; g* U' }' P$ A$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
* G+ V& ~" \. ]% H5 I' D; v. J, q# u7 c7 U: ?( |
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
5 E1 I$ V$ j6 S8 H* v/ ]4 M! v; f ?
$ h( r8 O$ l% r6 o$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串* R9 y' o' t) [2 w1 ?8 K, u( {* _
: x$ B: Y7 {, C+ W' M$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
: b& a% A) {/ a7 T6 f; H: \$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
( \: h0 y' D, E9 c' U# v
: g4 g. `/ x6 y& t& S$exists 键是否存在 {finaGoalLine:{'$exists':true}}$ W3 p8 A% |+ |- \7 U+ @
, K, y# s/ u) C4 s
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]], c# }! y/ Y' `* x' H! V
6 m; n/ P' e( @. `
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
! A9 M5 o0 U, m' A" p5 n0 Q% ~$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 ; U4 |9 [8 C- N* V/ }# t" M" F
0 O9 u& n' F3 t
) m$ M, D8 G0 a
$ d" w8 W0 r2 r2 D* a+ J# P) j- o r7 u! ~
+ W+ ^1 ?& S8 u4 p& \% r
4 D2 @# E. o% j5 @6 p- K: O
) Z; o8 D5 ^8 z- x# ?' d8 z6 f, j& Z( i# R! v9 h
组合使用方法如下:
1 H' |: V- ^) j
% j5 e) b6 s% [) \$ d- ldb.user.find({"age":{"$gte":18,"$lte":25}})
" v( y2 O: s9 x) \9 O3 U# |: _5 N9 F
" \7 L$ l5 I% x% S( }* f; I5 X+ e( Q9 I
' ]8 v; ^! ?; u* _, n; C
对于日期的条件查询方法: z7 O, e+ }$ ?$ K1 V" F
, m! }/ [8 B' N; f" J
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
7 k a$ n* L( r( h6 S& d- q9 R3 H
! P1 b( S9 {+ U4 Z* N3 e$ K( Z/ u! N" C) X1 \4 G5 W0 W8 Z8 x
, V- |: `% N0 F2) 不等于 $ne) `6 Z8 g& C7 ?) l' j
6 e% u {, O/ b* B- R例子:
+ D. P; s7 @1 E& a' i( t2 E% q& L' u, {* T: l
db.taobao.find( { age: { $ne : 10} } );
- U% \3 R5 D" L* E) fphp7 查询mongodb方法大全& O: W( ^$ K* ~, I0 ]
4 a' k; \2 b% S' ^: Y: c8 l
$ h1 |& {; K2 g3 Y0 r; S8 k
* C8 k/ |7 j- r. I) \6 S! `
! {, m; \' Q# F$ U& X$ s7 w n* v' o
6 }; ?) i- c% j& t2 C5 X! G
9 {& N+ J# N+ F0 M! T& r4 @4 P% O6 m& D. |8 i1 |# Y3 C2 C
0 ]/ X8 d2 V |1 v2 f8 l( H7 E; `# o) f8 x5 |
1 n% o1 T, A! S: {# q
+ Y. Q! h4 A* Y& L, ]8 a
|
|