管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
3 a3 R8 w) R- u( c
0 R- Z& E7 { `! c. n5 k6 D5 Mdb.getCollection('student').find({'age':{'$gt':'20'}})7 W9 u' @$ M. Q
9 K# l; a2 `6 W2 k4 U, f/ ^2 d) O( H. z7 t+ l' M
. D/ P, @& q5 V$ K- j' V% Y$lt < (less than ) P7 i) \- ?- i/ t0 E* @
; G& x, c% H5 j% V' V$lte <= (less than or equal to )
. B) W$ E2 ~3 ]- y9 L
7 w ~9 o5 p8 c. I$gt > (greater than )
. L; `" F# W- W/ V0 d
/ D% N) w9 o4 O, U5 D$gte >= (greater than or equal to)
# v& C) b" \2 }% ^) ^" x/ |6 D; x. K
) U* T/ i6 {3 a* p4 V9 X
: J+ q) a9 q# J3 w2 ^$ne != (not equal to)不等于 {'age': {'$ne': 20}}
! Z, I2 x* b3 `! M: _+ r1 Z; x' O. t3 W, G/ W# ]1 Q1 y4 Q$ i
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
?+ S2 i/ t" m/ c$ I
/ P3 ?7 ]" o4 V$ \/ X1 u0 z1 J! Z4 u$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list* y+ A/ K$ o4 @ t5 ~& k
' K$ }* q7 g, i$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
2 i V. U0 n$ v: x! j7 S8 f; T2 q/ x9 D7 J. a
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
% m' P0 o$ K' a" V& |4 g* m% z# L7 ^# A( @# C
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int" h: S* u# ^ |! B/ B+ q
7 Z' B$ d, A; C2 q' M2 a0 e+ v
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
+ b' J$ R0 A5 Q3 z# a$ B1 ]: X! ]2 x% E: z5 k: g6 a
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})( }9 g' E; j/ u+ k! s/ d4 s7 | L
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);0 { w3 [% ~2 Z7 g7 }1 O2 Q
6 a! v' p6 D( a+ Y0 k$exists 键是否存在 {finaGoalLine:{'$exists':true}}
6 r0 U/ {; `- {2 X* i' K
, I+ _" D* _: [" A( p" a$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
* |* v* d- d, C; V2 s2 Z5 d( P9 V1 G6 s1 z9 M. e! ?3 |' Y# `* y7 S
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
: t. f" R: r7 u" v* {+ F$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 ) p1 B" y5 P% l) A) q' M
( `7 _# @$ i2 F% S) F% G/ f
- ]6 u P X! I/ H" w! _
/ j* U3 Q8 ]5 `+ U2 }! y8 a# ]* p% W$ y7 E7 Q: ~5 _
5 E0 X2 M' A, B e4 D. \( D; |) q
% e! O/ K0 o0 q! N! R
: z* ?/ h! t+ o8 e/ r, G; e8 @0 M2 S. N# i, H% J6 `
组合使用方法如下:! B0 a# b5 X* |# p4 Z
* A. [$ B8 j1 Q# P
db.user.find({"age":{"$gte":18,"$lte":25}})5 F8 S4 V! E1 I' H" V
) x' C, e8 ~/ J d
- o# a( i7 T1 j6 b/ P+ Y* e
/ b4 z' ], V; A' u& Y y对于日期的条件查询方法:
0 L/ b# \5 v1 G% o0 S/ m# Q. c$ M1 ?, i! y) k$ M8 C* Z' G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
$ ]5 [. r) ~$ z' ^# T, g
- I, K9 z. t" `/ f9 o$ x5 R+ d9 O5 {' h3 S6 F
1 N2 h1 j* q$ Z! z
2) 不等于 $ne
% R& Q" v) U5 ]8 X2 @! {6 [- Y+ d- q+ V4 Z
例子:9 M! B4 y/ ?( G9 t! s" F1 _
5 d5 T6 n ?7 _" u, Zdb.taobao.find( { age: { $ne : 10} } );
, d6 A% x0 \ N7 B( V0 iphp7 查询mongodb方法大全
( O7 m# \: a/ ?* D+ }5 ^$ G( ^
' a% J/ t- r; Z+ @, x
, c& S' k5 X4 p' D& I% L) y# U: l) {' P2 `# p
6 a2 U, S- a: A4 u/ t7 n
# g+ c$ Y) Y( h( M8 \
; `; I( l) m/ e, K4 k8 Y) k6 y
) d. r* T7 w) P9 k5 \
! |; O: I3 o6 C x7 Y9 F! f2 q7 r: k, h# V) N- s# Z
3 V9 r% s/ O' ]; I! Y6 N. m% N4 y! i( }" \4 L( _
% k O) H" U% Y4 e8 D* B |
|