管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:- s7 o& U1 ?; G. d# r
# O* @4 j$ f8 r9 G8 W
db.getCollection('student').find({'age':{'$gt':'20'}})
$ z# s" m; @1 q- a# h( g1 `; ~4 J9 X u6 D, _
; s6 h3 X% X& u5 N" o( n
' \7 w( a. m% T: L$lt < (less than )
4 G+ h; t. j; x7 K# o) {5 R/ b+ N! V4 E% A& d
$lte <= (less than or equal to )( m, Y# q- i1 D! J/ v2 L
* ^: M: |% m7 f) c: q
$gt > (greater than )" z; t3 X1 |# ?4 U
+ s2 @" H7 r8 m' {$gte >= (greater than or equal to)
9 @- c0 [8 A/ s+ [ E5 z# X
! P4 c, e- ~; @. g* I7 D) v6 E
6 \' u) N9 g: ]" \
$ X2 m8 G. `- n2 u# c# J. h$ne != (not equal to)不等于 {'age': {'$ne': 20}}
" W0 q/ a2 k6 n- _: x6 o5 \4 k# {
( g- M' d4 `5 t7 M3 ]0 d- D( Y$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
* F8 v8 i* V8 |$ r. }" O* ^
& H" `2 i$ D0 |9 |: O* E8 b2 O$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
2 S. B$ p8 T" Q8 j7 |, \7 c2 R/ n3 M4 e. u9 @7 `8 ]
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
" h0 p7 y9 d0 s/ o; {$ C' }
$ K* K' v( M& h: z4 u$ z% ]$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
& {* y" }0 r# d2 k) C
3 e# h' Z: f) B& e4 i% _; [9 K4 `$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
* V+ N, j: [- k) w- T
1 J' q8 h' l" z4 r$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串- i9 ~& [7 W$ U7 ?+ c. J: L& r
; E9 ^9 h7 Z- p- N8 v$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
' u6 e, d6 F K& A9 @+ m$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
- `6 j1 ~) k# z0 R
8 R! S! H8 m0 ]& D. K$exists 键是否存在 {finaGoalLine:{'$exists':true}}. g) h3 q8 g( J3 T+ `9 z
# B) r& U& v& V$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]+ b; U2 g3 H% e2 Q) l, q5 ]2 p5 F
( _0 l3 T$ U/ b. K7 O; L+ \$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],( C. P" W ^" E
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 7 r; H0 D6 W* E' G s# d
' h) |7 Y4 W& \* o0 h5 d: s' s$ B
( f- U& _" t, V- L; N3 ?6 J
' C J5 s8 {" Q& Z( p9 k
% C0 d. D+ y& j( C/ K- u( U+ L! }4 [$ G3 Z. X& _$ H; f
9 B$ J; S; |. ~& z. ~( ~) Q. @3 j, j$ T j3 q- Z
# U* x4 d1 I+ X' Q4 _组合使用方法如下:
) C: x8 ~+ @. {% g" z* h4 d' T8 k
db.user.find({"age":{"$gte":18,"$lte":25}})8 N l O& k4 g% J3 b
0 U" J9 M) z% s9 A0 X
- W2 ^+ h8 g+ D) ~6 g4 [$ W# ~9 G( G' W1 P$ H8 B& m: ^
对于日期的条件查询方法:
9 t" S+ i; q+ \9 S3 x, d) z4 Y8 p& h2 O! Q
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})5 t. V5 Q) [' Q
' i2 A3 e( Q# P. }, _' v% A# u! d7 {6 f8 z# y) x
: ^1 m/ R4 D; @( m0 _: @; L' g2) 不等于 $ne
. f) O9 _+ N& K+ o5 r( W- C. N
8 W. C Y0 ?) v4 N, ~: W例子:
. Y) z& ?" H7 ?& ^/ w% t
7 H0 s, Z2 h2 i: b8 P& G4 o) ldb.taobao.find( { age: { $ne : 10} } );
6 X& \7 \ N+ i& o3 Mphp7 查询mongodb方法大全
6 ^/ [: ^2 A& ]0 R% D- P+ E0 d
: O2 D' S& Y4 V1 F$ |# r6 x. H$ `# X3 x8 e# h" j1 `
4 v( n* N# |( ~+ x! c0 G
4 L; L( e2 \& E% b8 o
0 b0 t) Z Z: q% |
4 R; s$ l8 l4 d' G! z3 H( L7 ]: B$ S2 i: W& M+ Q- d# [- ?" ^
! W' s% k6 b; o; w
7 L4 Y& _( s) x# d4 G/ M, K T; l2 L2 ]
. ]; y& V" M0 [: Z) H0 |" D0 |
$ W+ F/ i6 O4 J$ s* G% Q3 i8 B M |
|