管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
! K; j; n- b3 J1 w! o, J3 P7 j' v8 j" C5 ^
db.getCollection('student').find({'age':{'$gt':'20'}}), g+ ?5 v) I n2 ]
* e7 y. S O6 V, @# Y" f# c
9 y5 P4 N* O2 D" A( l* _3 q0 D) Y& p/ j. w$ }; G+ L
$lt < (less than )
7 y2 b; Q8 T+ K" t) F6 V! H. b' K' |9 v% }
$lte <= (less than or equal to )9 L# U+ I g/ \7 v
0 p! \0 [% R! e! }# _
$gt > (greater than )$ E3 B, F; G% d6 P3 J9 A
, ~5 d$ }! P: L
$gte >= (greater than or equal to). B$ W+ Q$ \1 I9 W; F" d* j
7 m" h3 @' h. [# \+ P
' H: U3 ?. h2 k6 J+ Y; n
3 o" X) o& d; Z7 D( r
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
. M" ]7 I0 K. w- Z( ~1 [4 ?6 s1 @
' g' [$ V( V4 a/ [/ _ ]$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list) b9 \, ^5 Z" ]+ F/ L2 m! B) N
+ q6 y( U! [- \9 T3 l, `$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list8 f9 e7 r3 n6 A0 \( V5 {) h8 i
; o7 h6 {: Z8 K$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字/ e. H' z( _8 k. o) v7 U) m$ O( S
2 M+ C/ L4 K$ M" R
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
* ]6 A3 H) Z M! F# a9 s2 @$ d- L1 |* \
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
$ C% y, E L) m6 T
% n' k4 `' m. @2 J5 R$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
# }9 U2 Z& M. K$ _/ a! A) a6 H
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
# J3 }1 p1 \1 L$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
1 C* } E4 Y$ s4 H/ l, f1 {8 I. p0 R
- P4 J" _/ L, t O, S9 o$exists 键是否存在 {finaGoalLine:{'$exists':true}}3 v! t( x8 _7 R& x
! r6 g k C; q+ O$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
" n' R# [" \* q% s
3 G- U; [) }4 ?5 ]3 _5 ^$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],4 r$ u" w6 v3 A6 R/ ^
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 2 D# c! D6 ~8 v' I5 A8 D# k6 }, `
7 l# i4 |$ B! ~: i5 q" Z
6 ~' @% t. d- t0 |1 `: f; E" v! ^3 i0 V5 h
) G F0 I) L* q$ N1 I
U6 ]6 }$ K) g. i5 m" h; H2 h: Q) A. c9 K' ?' }
4 G O, Z% j0 I4 s
9 \, I/ Q9 \& n5 P% r组合使用方法如下:2 {! w3 i9 l2 g) K* Y7 {- a; f
9 v' |" L! i7 J" x) O. V$ j2 Odb.user.find({"age":{"$gte":18,"$lte":25}})
& R9 ^5 ?) Z! M
1 C# y9 l! f8 y, @7 h
, y7 W& ]0 b* {* p& U3 e9 |/ F
$ l5 X$ P' l' ^* \; R对于日期的条件查询方法:; F' ^; ?2 O4 \) C6 ~2 w8 h
: ^# r# z0 I* {- Vdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
7 M) y' q7 m5 C4 n1 Z: R9 O7 @6 L" M- d
- S3 Z6 N+ O. I( S+ \' E) x- L R0 U8 `# q4 Q
2) 不等于 $ne
- V# u" ^4 y; \. M% f7 M* ?: N5 q$ k, H* I& j
例子:
2 B) }1 J7 `( X! `) d# T" c! X9 p; A# W# c: y2 @
db.taobao.find( { age: { $ne : 10} } );8 M! z2 }1 @+ M+ f+ B& y5 d
php7 查询mongodb方法大全9 C0 `0 i! l: P4 ]
$ g3 g, S' c, ?# o( S0 Q5 Y+ E/ L; c) E5 i
8 j& K) g" W' h: G; l2 q8 c
5 L- v3 f/ `& v- f) J1 I5 ^2 c) _
/ p9 q0 E2 Q8 z* F
9 I- B: j8 I0 I: ]( q5 U# y: T; z2 \& U3 S2 N
4 @6 M& I z* h/ m* x' P# ^
, `* @5 h( H; R5 Z% Q: R7 \) D0 w3 h% Y' u E, e
* ~9 t, Y0 b4 A5 g# s8 Z( B' D0 W
4 E4 Y& g! P: D! a |
|