管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:! _9 h3 W' ?$ J& L9 a/ Z1 y- i m
4 r& ]4 @& @5 J5 w) ldb.getCollection('student').find({'age':{'$gt':'20'}}); E8 F @ d5 y) ^8 F( z$ k2 P- ^
: a9 m) v2 ]0 j8 D' w- p
8 u( `3 G- Z! I0 ^; G
; M$ W) Z7 D2 |* I& I! _$lt < (less than )
3 a4 t' c* a* E# d) @! S( V2 M. v; a5 q7 @9 v
$lte <= (less than or equal to )
4 ^# @( ~0 `- z& } h
2 G6 S' c x8 t. j4 S$gt > (greater than )/ s) s, `& s" q T+ F
. ~ H. Q/ b* P# {7 u
$gte >= (greater than or equal to)
4 P) _; c$ ^/ s- @, d
8 g1 Y6 o: D6 N( l
5 k) S# P- }1 W# h/ [
$ `. c: j# P2 Z, ~+ y3 b- w: V$ne != (not equal to)不等于 {'age': {'$ne': 20}}
/ d; N7 Z5 D- P1 ]$ c) `9 M, [( R7 j3 N/ n
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
, N2 @0 V( ]% B9 E) G6 D6 n! m4 I6 T
/ }* |+ N- x# v2 U$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list5 Y4 v% {% Y7 s6 Y
, j$ W0 b9 P* N, U+ @: o: v$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
* ^2 w& h% h6 W7 u: K# S; e; A4 J; }9 W
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
0 p9 t9 j5 i/ N5 }: }
* X* O* w) d: R5 P. _$type 类型判断 {'age': {'$type': 'int'}} age的类型为int E% P1 f0 L) R: ]
% P5 I+ M# T' I5 v7 o9 G$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
6 b! e" W3 ?- j* g4 [; z; p8 w: S# e( v
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
Q0 Z( e" _; J5 v$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);5 n! m5 {. g: k1 k* R, @2 q
2 w* b" [9 u/ |; Z: w
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
/ y! }% z6 n' A6 o% ^, Q0 D! b- B H4 [/ z9 l1 D5 B
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]4 k2 B/ f- [/ [" U7 q
5 @6 t: S( M* H# [) |# B7 k
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],]," x3 g) j( b* u1 ^, b n. D: B
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 " r+ P7 d1 j$ Q5 D. O* v; {6 g
1 f! w n6 a- c f
& s `! `; y9 F- w* U
2 u0 E P5 l& o( {+ t: V v/ @ Z. o/ j' u2 K8 g
( q6 a, f' N2 ^2 W" M5 L) r% ~
$ Y: g! u) K K* `
, @7 W6 Y) B$ H# f9 P2 w/ o* v9 m$ P1 C
组合使用方法如下:$ t8 g) s- F0 _" ]7 B! j* B
0 E8 a# ~/ t C5 ~2 T0 A& Q/ t+ C Q
db.user.find({"age":{"$gte":18,"$lte":25}})/ ~% }: p+ r. Z3 u2 P* x! D9 k
: X x+ M" j% Q% _0 N Z
* n9 ^# y; A( P/ u5 I
! p/ y2 [' `+ @# Z对于日期的条件查询方法:
( F( l& W3 q* L1 Q' ~6 u* p# {, v
% X& G3 k$ d. W; g, ydb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
: K: _6 V1 Z, v" G5 {+ [. g: }' R" z4 v+ {0 n
: c+ Z" D# _" w$ S
9 P7 A2 a* K' K2 L; E/ t2) 不等于 $ne
+ Y. e" q5 t' s7 D/ t
, c4 y( p5 f2 D3 ~( u例子:8 Y1 E: v8 k% @' Y
5 R! d2 Z! g" g. c% I* q) X
db.taobao.find( { age: { $ne : 10} } );
5 s0 v$ H7 ^3 {8 |$ O4 pphp7 查询mongodb方法大全& w. R% x: D+ c7 e
& V; g% ^: h) f0 B* a0 w X- s8 T' A, d/ P4 ~
1 s- w: ?! E" y% R9 g! u6 D$ i/ i0 |- t& C
/ s) ] B9 f2 j# j! P
% u* @; N3 x& k) H( e0 Q, e
& P |4 G/ y. p( }, t& ?
1 O4 n2 J- e9 C
E9 Z% m% `, U1 k& Z
. y, H( @4 S2 f# y( M4 i
# j0 ^0 \% e# d4 H9 M- l2 Z: C) t. g* o6 {7 c
|
|