管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
: U- N% [$ V+ n: J3 U! x" Y7 ? |* U
db.getCollection('student').find({'age':{'$gt':'20'}})
+ u) u& }8 K2 {/ c' g3 s( x! w: q5 o" L: E. f! f3 O* h1 y) }: Z
, u* b( c( c N- r
# m& P4 y+ m, t) `& U6 h: a$lt < (less than )
+ S/ ~8 k' U% T% K6 @8 l
6 B/ m& ?/ T. s' T% c$lte <= (less than or equal to )
- x. }" f" k6 a1 l% \) R
I% l8 W5 Y) |9 x. p& ~. k+ j( f$ T( Y$gt > (greater than )
& A7 j: S! v3 i; c
3 G( y) C" Q3 h/ t2 B( X$gte >= (greater than or equal to). X: U) X: x' e4 U5 _ w8 L& s: v
% K, K2 S: H9 O# l* @& R4 f2 ? d4 r: v) G7 a
6 f! X6 y2 l7 E6 w4 [$ne != (not equal to)不等于 {'age': {'$ne': 20}}, j5 ?) k' M( i$ N& C4 _
0 T+ w0 u) P1 d Y8 [9 R+ \* h& F$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
& q/ j- _; M v2 u) \" l9 n8 [* g& g3 n, F& L
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list5 F, y" Q) B% z! L F1 G
3 [8 _" t. }( {- {$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字, U( O# I o5 _- a; ]
! ]/ s3 T* K5 B% I" F5 `% T% w$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
, h( ?3 y, }. v# ~6 I
( @: a6 |& I% \; |" m$type 类型判断 {'age': {'$type': 'int'}} age的类型为int1 T1 C4 M0 |7 q. }5 O
# V6 g; k0 j9 |, R+ N! M# }
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串; Q" Q6 a2 b: ~8 B4 f1 v- _9 ^
`7 H4 ^0 Y, M& c0 f( }( D
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})1 T; |% h% r) O5 i! F) ]
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);& W p+ _. j" X, I+ G- |
9 P" {3 M- }; F7 c$ c3 r" q8 ]6 U
$exists 键是否存在 {finaGoalLine:{'$exists':true}}7 _8 c4 C7 l! L- _! j C, ^
9 V6 B5 S. D4 A! l
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
, g" B1 I, }) Z; G- t( @, i
( h" C! j% u5 X9 y* ~$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
D- k. _% B( Y" n& k$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 0 v N* V& I, p0 J* M6 F. `) |
[; c3 k# c8 D+ I) v# u7 E& Z7 b
% e1 `$ T$ p5 U' t0 B2 K" R) ~
3 b- B/ H! \' e) @- ]; E
( v4 f: [" C: U2 X5 T
$ m; l! k! K' N! G! H+ n
5 L9 [, w. H' g; j
: R; G2 n. l" l1 B) J$ M' [& U8 _; w+ }
组合使用方法如下:
4 S# }) W& k; ~0 D& P
8 |/ `0 s" q+ q# E3 `! Wdb.user.find({"age":{"$gte":18,"$lte":25}})" W. Z% w& |4 \% \ V
( z5 ]8 }# B$ A$ e% T w) a
, _( W# ]3 e+ a6 x* D, u7 ~' S& d) E0 ^# x8 w( m
对于日期的条件查询方法:6 U1 i5 D; S1 Z% H5 g/ b
+ O# q; v) v9 N
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
. h9 f/ u9 ]! g
8 P8 c8 `" A# {8 R. K% c! ^, T
( B/ K' J7 I: z& ?0 t
7 E0 @+ b" Q$ |* R2) 不等于 $ne" S$ g% s- f. B' A# n' H
0 M0 Z E9 D6 |. ^0 {( I
例子:
" ?' f- W/ o9 W
, d7 l, z, G% O7 C- Edb.taobao.find( { age: { $ne : 10} } );4 Y( K; N+ K3 x: }% _, t
php7 查询mongodb方法大全0 ?* v% b1 P$ M2 ~0 G2 ?$ J7 A
; p9 S3 r9 D; O5 k: g
( J9 D5 ?# f# ~. c0 i% B
5 Y( @( k# R" ]7 [/ J8 F$ j
6 _6 Q) M {. S. @2 M+ J: F9 |
! O/ Q4 }. Q2 A' J/ U, \
; g5 J! p4 L. \5 n- P
2 w+ }! u$ \+ N* p! `" y
3 D2 I0 h7 W( N" ?4 ]9 ]% B" P: S4 F0 d1 W0 F+ V
; R* F: m% _3 z- [- j3 Z& S) U6 r
" W0 _/ D7 B" s1 h# J# a6 h: o' m) G9 ~; X: L' t1 J2 x: m
|
|