管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:( L9 ?/ U, n5 ]) ^* v. a. F
6 V; o9 \2 M& ]+ N3 h; H. adb.getCollection('student').find({'age':{'$gt':'20'}})" ?" D; X% \2 B R. Z
4 E0 P/ f f1 `) y: w' W
; x% O; V, G6 p3 \7 d2 ~( Q0 b8 ~5 K1 V
$lt < (less than )
, ?6 s9 L6 J* i! x: {- Y' X; [/ ^
+ U6 F9 o. V5 \7 ~6 V: c$lte <= (less than or equal to )
, \$ D0 f7 E# E
# J5 N1 f; ^+ O+ i+ C0 u+ f4 q! @' i$gt > (greater than )
9 ^4 K( H, O/ {' A, S0 F& v
7 g5 b, W% a5 j- E: o6 r L( v) h, A$gte >= (greater than or equal to)
: B( w, C+ Y% c2 ]9 j8 D" v [; B% `1 s+ `3 ]. k, Y1 t# e5 j( A8 P
; M& s1 B9 d$ m- w+ x! K+ l5 w1 S
, F) ~" y: Z$ y, E
$ne != (not equal to)不等于 {'age': {'$ne': 20}}/ ]" k8 x( E* R5 S
: t) b) Z5 \6 i$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list) _( r& g1 q7 R# q
. x! Q& \ t7 N7 M$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
6 }' }3 B" r! a8 ]7 Y* r
, }: N$ Y$ y9 X2 E0 ~1 k# W1 }7 B$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字2 d3 q& c4 D2 H- |9 _ H0 O0 m
. T2 m2 k% Y: R K: {: c( d, P
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在3 h$ |1 J, i8 Z" u0 S, F- V% F' I
0 v8 z, j7 [3 ~2 x* B" O9 n$type 类型判断 {'age': {'$type': 'int'}} age的类型为int3 L, K9 V5 ^0 X$ @" F6 k; Z0 I) v2 t
p) B$ J! V1 R- T$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串- O5 g9 U0 \# t' c
C. P3 ^. @% o1 T
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})( B1 s/ T: R& @4 b0 B& D& @: ~
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
) I" O" p3 `( S7 p7 l' L: ?3 j# h |2 H/ C7 }* D" D
$exists 键是否存在 {finaGoalLine:{'$exists':true}} `7 ?9 ^$ i, ?$ W
+ x' m/ ~8 A: A$ R& I$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
6 A9 {: Z3 `- T9 r; ^- P9 r
" C9 c6 V2 s1 ]- o, @$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
) I. Z/ M$ n0 h4 t$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 ( v5 O9 K: W) ~2 h% }# ~. W
# b8 R9 _9 Y9 a1 l4 v. w
9 ?# M- k5 N% {9 I, W; v7 b/ u! k- S0 T6 J( E
; e) J7 ^4 v. k- J/ S( z/ v' n
% Q0 X1 d) S# h3 a+ B B4 B* U" n8 u& t1 U# p4 h7 Q
0 Q4 {6 `' T& ]) m) `2 X/ H3 B, C% [' M" V
组合使用方法如下:
* {( k8 b0 m& f- N5 u: M
, G0 @4 Y9 j2 L8 bdb.user.find({"age":{"$gte":18,"$lte":25}})$ R+ z4 @" y: \7 p
9 K, E0 n4 J; {* \; a8 g
: P+ c7 h7 Y8 ^9 _4 h/ h% }( v- t8 ^! g6 t: o; T" N: F% ?$ I
对于日期的条件查询方法:
0 c9 h* j: ?- ~& @+ V2 K- q/ y7 @. o8 X" i2 W9 l1 h" o. s
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
. Y2 b1 L7 q2 M& P4 f+ v- c
/ \' R5 o4 G# c$ T3 i% V! F5 K; t3 Y7 j
+ o2 ~4 A! g6 n2) 不等于 $ne
2 M( A2 l+ m: O) F0 B/ `- p
& i: ^2 @8 {$ V例子:
" ]: g& f% @" [% b
9 ^$ A, x, d/ ddb.taobao.find( { age: { $ne : 10} } );
2 U+ k# g1 t/ aphp7 查询mongodb方法大全
3 W! P6 L; H8 K8 e8 ?5 Q' e5 ?- O7 f$ \, D$ U1 B9 u
3 Q7 d6 h; v; X/ K. r# j9 j, L
' P9 r/ Y3 {7 B2 w+ A0 {" a& u
( s9 o& ]1 o: @# I9 I) J# Z( E0 T1 V0 K
8 P" K8 O d8 c, d: @& ]/ ~; U4 C& N2 Z6 B- E) S: l# E
- ^4 F" Y* Z5 Y' ?% T4 R" G3 K) ]4 G3 ^
; h* a% A# f8 r [
. b1 {; A5 f# F. F- d9 o! L
# B! M- d# W+ ?! W. t, C
|
|