管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
3 X; i# f7 v! O* J) S* i5 y# o9 H/ p% ~# g( {3 P- Z# V) n7 |* v
db.getCollection('student').find({'age':{'$gt':'20'}})# t8 w" m5 y* d! G7 v8 T& e
2 L; L3 f5 q; s9 f
" ~0 F6 q: ~; Y: }# \+ H% f6 U
/ n1 ^" V9 D" V; d8 }7 _, j! M$lt < (less than )
7 I3 S. i6 [3 Y y+ X) l6 T# [3 d$ v& O! s
$lte <= (less than or equal to )
& q r6 h! ]- K H- f2 {: h
1 N# h" g1 j& w$gt > (greater than )3 F* r3 y4 w: J
|' ~/ X# Z. _1 `+ }) Q8 I
$gte >= (greater than or equal to)
! K$ j& X) y; M# ~& {7 X! r
+ K) X7 n% n7 V, F2 R* p5 m
0 W+ i1 z- C# q; ^, a+ M H
4 G( k0 y- A: b e' _; @$ne != (not equal to)不等于 {'age': {'$ne': 20}}
4 q# u& ?& K, n4 d0 k+ B- ~/ `* y6 ]5 l" I/ g( Q1 B, M
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list; y) }: @. X5 }, t% v) x
4 c" t7 I4 A) a# X- ?4 a* g1 r$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list# `6 j, b3 ]. e S0 X
& G* A, i, Z, o u0 U8 ` f
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字: u( h2 c% ]& q
& }0 q- S/ t" H5 I' l5 s# e$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在# G, N! R" Z6 t9 G
; W: }8 f: o. ?) o* R0 r
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
+ {4 i7 {& D* |: }# R
( x% R! s$ D! T2 Y# j) n2 |' Z$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
% p% g# A+ \+ Q$ f1 U* R9 b5 w; {2 w) f5 b# `3 \
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
% L; t: ~! P4 Y n# Y; z) s$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);0 l! ~& D; l2 f% d: V9 t2 M
6 v- w( d* Q! i; d6 o9 g
$exists 键是否存在 {finaGoalLine:{'$exists':true}}9 y: K6 Q5 @, g/ O6 b
: j/ _( p7 u+ n1 _
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
+ O/ V8 k9 w# S# d' s/ A
( C e( x1 e) v$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
$ s' ~- Q O# a# F. e0 H; z$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 8 R& P! X" U: ]" v
3 x r( h) b6 g7 x+ W3 l" i; y# M
, i( t6 m y! `
6 Q8 U" l1 W& K' _. V+ j7 n: P# @ I8 N% g7 }$ \- k/ g
; O( B& l0 v! S' X( w8 j3 }3 k' ~
0 o0 K6 ~; z0 I" e: k
: U: E4 S, y2 J% R0 l% R组合使用方法如下:( e# z: J( ?" @ B
$ I- ]1 t" j* S+ X5 Y$ ]; N4 o
db.user.find({"age":{"$gte":18,"$lte":25}})
; {' ~2 |8 V/ t" t) ?& m
4 u0 h9 i$ B4 [' N* w" w- b1 ^( T/ g* n* Z4 I
! u( g0 ~2 {# R8 i/ B0 Q# V G- a
对于日期的条件查询方法:
- F; ^! V7 s. Z+ [" _4 X% W9 L$ Z- L
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
- ?4 F2 V/ ~' p9 J, y# i, g9 z5 {! O; M; C- Q5 \5 B# T! w* X7 H- @
0 S6 s. H& ]# {, N
/ G- \$ u% p7 s; E4 n6 U0 w3 G2) 不等于 $ne
, C$ ]3 h3 G, T1 G k, `* i7 v: ~- z( U5 `' ]3 h3 G/ m) b& K. [( l
例子:! o4 q" ~& K" u: i: i4 ?
* T) s4 ?7 r/ Xdb.taobao.find( { age: { $ne : 10} } );
% t3 Y4 M( s- C' gphp7 查询mongodb方法大全( G% j7 [, s8 E. W% K
6 j$ N$ P1 j" j8 v
/ Q1 X+ J- q. N8 c( b# N5 Q! E7 Q& L$ e7 X$ t" d* Y
% P$ W. c6 y& P; H0 `. X; f
/ v% g `# Q6 e4 \: C/ l" D
3 e8 b0 S7 @9 t! o" C3 A% p0 R) C0 t/ |3 u: B, ?
' k. k- C+ B- t/ _, V: D8 j- z! ?0 N
& D! M# S2 R0 D
& a/ Z" w- ^+ U$ C) N- A
. |; R, F8 T4 G! G) k& G: w3 D |
|