管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
& J; F. x0 x1 d3 K
1 g! x- S0 Z3 X2 ^( ?" j+ @% u4 rdb.getCollection('student').find({'age':{'$gt':'20'}}), Z$ n. {7 }2 g' r: V7 U i
+ P# m' ]1 N1 ~
H2 @+ v) o D. F6 r% T/ K, m5 O+ w* f+ x
$lt < (less than )8 Q1 F& X Z2 ~ m
( J# Z! T2 q* E# u
$lte <= (less than or equal to ): i/ ]7 o" m3 b# r3 L N" ]
% W( ^- E' s: n) K% `5 a
$gt > (greater than ); N# P4 f2 r- W6 N9 o
) V6 E) b q8 @5 H9 n! {& i( Z6 j- x
$gte >= (greater than or equal to)/ H* d" F- x. ^! S- P- l! n
9 \2 I9 M8 _, i
5 b+ F* m$ D! b" l
8 ?( p+ T) P& ?5 |( T8 B$ne != (not equal to)不等于 {'age': {'$ne': 20}}8 o$ B5 O A6 @$ x6 ^ `
?2 T1 y9 w8 c: V1 ] k9 m
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
! @# M7 c9 S* B g' c, p; j/ `4 @3 C1 ~8 V3 p6 r3 L
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
+ d/ m) X# w+ S* [2 A+ Z F5 s7 w) h
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
3 U' ?7 U' Q2 J& t+ R9 k
6 B- R' c9 G5 @# M; z$ y) r6 e$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在5 g f" i) J% j# I8 P9 _. }& b6 P
% D4 q4 ]4 F" J& Q3 a; F
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int$ G% Z' r! b' H9 t- C/ K
1 M; A. v0 F; P$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串* k0 u) m; q5 D1 C5 U
9 ^7 r; e9 {7 o7 p- ~& A$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
+ {4 H7 H6 Z- I' R/ l) T0 q2 f$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);2 `8 b. m9 k' |
1 D) E" N& X9 C+ N* [% i; o
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
+ H! W [% p$ I9 ^% c' v8 d/ M% T& |, T5 P8 W N. L W- x2 V. P# c
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]8 T- |8 M, _# v5 ^
4 l9 v" G1 i* `" u/ \: O+ W1 h* c
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],+ d0 p- o( z; Y, I
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
7 V5 j$ X: p. C# O: j! A
( ]4 A; z" N1 z8 L' y; ~
& z2 c7 M3 @* y. b8 W8 |% r3 n5 N+ A' Z
4 Q5 l7 {" Y i' k
E: o& y6 t3 X5 H+ ~, b- D/ B) ^7 w2 D: e7 ?' p3 K6 `8 O3 Y2 A
$ n) q4 F7 a$ h. K# U8 Q, |
Q3 W, b( d4 Z) ]" m. y7 ~) v: w4 a& v组合使用方法如下:
- L ~& Y: r% E# x6 @; k
% C: L Z3 x% Z3 ^) z; }, z' zdb.user.find({"age":{"$gte":18,"$lte":25}})1 a) O5 f/ e$ e' D0 v* k
L5 D6 @: S2 Y, C" b
; l, w! d+ Y5 ~
t& M0 q6 s% N) `8 E' L' w对于日期的条件查询方法:
9 J: \1 f& N/ ?( B6 F' F5 v+ |: w8 l; A. S0 G
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
8 P$ h! A, S0 J) Y4 Y* ~9 V
1 [/ r& L" f. Q7 i( g. _9 M$ A2 w6 S6 Y
: Q% g% e* a( L; u) k1 [ L
2) 不等于 $ne8 i% t5 C7 q7 a) H0 W. w( u7 J( X
. l/ m) N/ i& Q9 A- r
例子:, W) `1 G3 j0 G, d% O3 G
# l) o/ |/ y' q3 S- m
db.taobao.find( { age: { $ne : 10} } );9 `3 w3 D f) \+ a0 E: d
php7 查询mongodb方法大全
0 {. @' k r& Q& b
$ W6 I! P& Q# @7 l: K. ?' z9 t6 Y) F t
, }% w ?. @$ s7 a
) h; p1 m+ Q' b( { l( p8 |
1 y4 g1 a: ]7 n! a$ V
% s; B, E% z5 l- u" c3 s
1 d. a, P% ]- U6 Y) v$ k6 H7 e% k9 T5 S" E. s/ h
& I$ i6 y9 D. h( X! d7 m( w
3 p$ J. g3 q3 h8 a/ t' c9 T5 l6 J; z+ d) ]) @( W1 f
1 h4 a( I( U8 L) |. t+ {( f% o
+ r- B; s% P9 Y |
|