管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
" r: ]. M) q/ `( B; `2 H& m6 ~' W
db.getCollection('student').find({'age':{'$gt':'20'}})' A% n/ k7 o7 q6 M- a
) m4 U8 y2 G" A/ d1 l; [3 H; W
. e; o% j$ H0 Z' _9 s7 c" l( d4 i0 K. @0 ?6 n
$lt < (less than ): ^7 b: L& u( d) U0 Q
$ L& W2 x1 @# q# @. U( M e$lte <= (less than or equal to )
4 V! T$ K$ w& f* ]0 ]* O: h$ x/ w2 m) b! |" V% |
$gt > (greater than )
! [6 E' r* W# D1 a7 {% [1 o, ^2 g0 c( f8 ?, m j- @
$gte >= (greater than or equal to)
# s2 X. J2 B, W1 |5 G1 R: V+ V& y2 c
6 H9 F+ A$ O* Z w! Q- V
4 ]9 M3 l ~& h L0 n
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
, E8 H+ _7 p9 P- o8 A+ N. b2 h1 W$ X p: Y8 o
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
/ Q" R# i# y4 k. n
8 y- x; s. Y) M% D- ?6 U9 @7 y) m$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
, R3 A8 q6 h. ?1 h2 Y
# X, W9 x0 `/ E% r' B6 S% c$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字# a9 |. n, w; i: I
( J6 ^/ E# N( y$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在" M5 c' O" S. R9 K g0 q
9 Q$ L: m c7 q; A7 O9 o! Z$ n2 n
$type 类型判断 {'age': {'$type': 'int'}} age的类型为int: T2 u2 J& S+ o& Z( u
1 H7 `- A1 m' c# a
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
* T9 ]0 C) G4 b% \2 P! K9 k2 Q, m5 }' I6 ]5 c7 N( p" \
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})# M7 j$ }, A. b* S
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);+ |; ~& |5 m( l& y: ^5 U, r: K
3 P7 }' W* o h1 ?3 J' u3 q
$exists 键是否存在 {finaGoalLine:{'$exists':true}}3 ~ V: u0 Q* `
) d: v. S7 U5 F" t8 R3 K) v; U
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
' s- ]7 P$ |/ B! N5 q! S; j1 T, f7 t Q. Q
$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],. L3 a, _5 T* L
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
6 K V; z8 [( p$ w7 {: F& ~* c) {( ?
0 ^' D* y& M4 ^1 |7 A9 R. L0 E+ z; w6 q. T, {
d# W0 l" a D. m- @
' M! R3 ?2 {. `8 Y1 h1 `- }
4 q; T' J. K3 S( m# t: k4 h2 ~& l( q
f: J3 g) `7 s6 |" `% Q! C8 Z6 n8 R; P
组合使用方法如下:
! y. k4 M" X9 h: G z9 b8 ^; R7 B+ ?- N9 v/ F+ Z
db.user.find({"age":{"$gte":18,"$lte":25}})
: y4 O2 Y! n, P& e9 J J# b) X7 C, W9 Y" f! k8 N) u
- t1 k0 u) F6 w, y1 N6 U4 T1 y/ N6 p) X* H* I
对于日期的条件查询方法:
1 I7 ?0 P' j& T) Z
6 L" _# ?( g: I- w* Fdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}}). p; S* M, x5 s" O# l
6 }4 g' R$ n$ J
9 q7 C0 F/ |' x U
6 E }0 X& Q/ h+ J5 K& S; x2) 不等于 $ne
( W" G/ H$ u( x2 b
/ E7 x5 z1 X q5 ~例子:
8 U# {- I1 H+ C# T9 N {5 ?
5 f2 a! P* ?* I6 V, Cdb.taobao.find( { age: { $ne : 10} } );! m& ?/ S9 K9 l7 a% ^0 G
php7 查询mongodb方法大全& i7 R/ I2 n+ Z( K( D) r
! B1 ]+ l- V7 i+ \5 o- x1 s& ^1 U
5 Y! E: @' C8 A6 f9 W8 D
! |' u$ Y( y( K& C, n9 U3 t. j' ]$ ], b
* n$ S$ w: n4 L1 n9 J& Y
7 [0 ~" f$ _4 J/ w& v* A
& ?- C8 }# [. S7 _: P; [% A
e' E+ r# V; K1 W5 r, `2 @2 {7 i) W+ a* l
: ?* g. M0 t% i2 V2 }
7 h9 V4 i- }& X |
|