管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
' M6 d# \. s# a9 [$ Z' m) V; l$ x% m& w& A; f, w, ]
db.getCollection('student').find({'age':{'$gt':'20'}})/ B9 p0 T; y! q9 I
! [8 e+ K4 U% q$ C" G1 Z9 o' R5 k9 S9 f+ b0 b% J/ S2 I
; F9 k w0 x4 r. U+ S0 e
$lt < (less than )( w% r0 U( L- K8 E
) z9 H5 Y6 H/ P3 R5 a$lte <= (less than or equal to ); H$ G) u9 q3 Y* j) @
4 Y w$ C3 {* z$gt > (greater than )
* i; f) z0 J# b9 Z
+ E/ }) a: F1 ? u9 |8 W) C% {$gte >= (greater than or equal to)) @% t" R M+ g0 S6 V/ P
7 T/ F7 O: g( v' P4 @: k5 f' x `/ ~. S& @7 {/ |0 {
- N& M. e4 |. j& o# ]$ne != (not equal to)不等于 {'age': {'$ne': 20}}
4 F. j# n7 \6 q( ^/ h5 F
* H! L9 ^ n1 t$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list/ G3 J) f3 t! y7 ^& J3 \+ X
+ D$ l. v6 t# S* a. u
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
1 h& J( F2 Z, K7 {6 w; n3 b
$ V1 b4 c" v8 S- B$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
* Y# ^0 j! r- }2 v6 F9 L1 `7 T' I4 ^6 }# g
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
! x4 T$ d$ _9 g/ }
& B: L& p E; b5 u$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
3 r, x) U- i* D- `# ]
% V& A. ~5 z) b# C2 }7 m# c$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
( N4 R4 s: F s% H, X$ K+ Y/ T+ i1 U8 I0 G
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})+ k7 M0 h. J( h) h" [' j" D
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);, l% K3 k W+ h
; ? |9 g: H# v2 f- \$exists 键是否存在 {finaGoalLine:{'$exists':true}}* v$ _- L! u2 X, @" Q
2 v9 N# ]6 o3 N. U$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
: e% }3 S! G$ R# U, t/ w! i4 N2 j( H7 R5 h* ?3 X# q; ]. [% v) q
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],& W! V) |# O7 g0 j
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 - X9 E+ W0 g" _9 u: F
: N1 I! T" c1 J) _' t) P& M& H
; E: V' m- _% i2 ?+ I" R
$ i3 j% p7 d( ]* M' |! b
1 m6 u- Y$ b3 f6 L3 [4 T
# i" B. U3 n! D0 I
; i6 b* k. h9 a5 M+ g" o3 k. g4 p, O, i' Q ]$ g- n+ z
3 q* O8 i5 O [- x) F j' I
组合使用方法如下:+ N- O. B; {1 w
* ]+ L0 Z; R1 d) M: O: mdb.user.find({"age":{"$gte":18,"$lte":25}})
# v" x# Q( z8 e' L8 d ^
* u1 o* E$ U) b1 Z7 w! E, n1 A
/ S; E6 E: B T( x" X+ t2 T/ h( u
, m1 C0 L" R$ ?" q8 d, }9 x+ G( ?对于日期的条件查询方法:
9 a' f- \2 e9 W8 m* o+ O9 v0 _5 H* U# k) b. U# l G9 i9 C; k1 K- G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
7 g1 q# j" V f2 k/ O E; i7 U3 O
4 [6 i B1 l; k0 s! x
/ V2 O* t! e; j# v! k2) 不等于 $ne
1 o. {6 Q# n0 n; A; e0 W( D- K& c& K& ^+ H1 O( ~8 \
例子:
p! x4 T, h; ~7 \6 M# m" a; j+ O0 e' \) U; [/ d' B. G
db.taobao.find( { age: { $ne : 10} } );
* t6 ?6 ?4 A* Qphp7 查询mongodb方法大全
. i$ D4 C7 O9 D, L, {7 t6 j) j# {1 }* D6 G @# [7 Q0 _) ?# ~
! g9 W# U5 M% W( q7 c
9 q0 t6 ~ k9 ?% b. Q# q/ [* V( {4 k, m
9 J2 _/ H4 I) u
* U: t# P: T9 I$ D% s, t! R& _
% s0 H, |, l. E8 K8 @- g6 k6 o) Y, ?- E( A& s" Y3 v$ I
( }0 `, k7 u$ \& h
$ Y- E' s1 m8 e _* k
/ X- Y; }$ g+ J
2 E6 w" c, S7 _$ Y+ {$ {1 ]' [1 a
|
|