管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
' [0 B1 Z% p1 o, E6 N, z
}. n, k# u1 D( D3 S! |: _db.getCollection('student').find({'age':{'$gt':'20'}})
( b" l! m+ J' _0 f" L, s |; q
6 t# e! m i$ t; ?8 x6 E8 F
; R# g- d: L+ ~5 Z7 s& g9 {3 J/ M# r' @. I7 {
$lt < (less than )# `3 O* q0 A4 }' W* x$ i% ~
2 Q' F2 b6 ~1 w9 ~/ b* s+ d3 d! Z/ B$lte <= (less than or equal to )( W: h- g# Z7 |
9 y1 D3 C5 A2 O0 v( v+ Z" F
$gt > (greater than )
( Y e5 r* _1 `, b5 B3 s8 s- U, N; w/ m0 m, E
$gte >= (greater than or equal to). X! d8 R5 Y( f1 j/ W" I4 d
B& J3 |- X1 }/ |4 A1 p$ Y: T
1 u* V$ f6 D. p' T1 W, U" v. E, [, d: A+ X4 R
$ne != (not equal to)不等于 {'age': {'$ne': 20}}; E0 ^* q8 R+ A( k: W% r
! G4 ~ p) B# I5 @" f$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
) a% W m; t2 l8 C) W+ e. e
$ e p1 d: e* [$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) @% P: Y- G* Z2 O- ]
m% r+ [1 x) H- c6 s- R$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字' Y5 M* E6 m& t/ A( n
0 [# G% g- C- }% i* z5 f
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
8 \! R9 g' F! P
) z% L! L0 N8 Q; z$ t6 X+ s$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
: a1 s3 {% c9 ~
( l; s g: A) s5 G. U( o2 y$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
1 Z6 m' K% r- E2 a( s" c% N- n
) I& [6 e4 e, z: H* f6 v0 Q* \$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
& y' o( V, _- }6 R3 O {$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);/ d* i2 W5 c& d" |8 \$ W3 q* J
/ ?' U5 c+ _) h! J2 F j& u/ U$exists 键是否存在 {finaGoalLine:{'$exists':true}}6 K# K% u9 s4 Y1 m! O' W
2 b& Y1 t+ {& g V# K I5 x5 |( ]
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]8 o& S: | d; J; G; L3 ]4 S: i9 N
; U: @ s# s/ m k" a, l! k$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],$ Z$ W6 {2 M) ]# r% M$ ~
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 " ?- A- g; a; P) h
+ A" f2 g( }8 t5 {. e* A/ W& `# u! Y# f3 m/ d& f5 p
) `/ {6 n9 D; M0 c4 S8 ?
" M. D: M" C: G% R# i/ n/ h( H' a& o& O4 d
~* v- `% ^$ V' ?/ F# v
- F5 T0 a+ G( E0 R# f3 i
+ K& Q0 i& i; k' h* d组合使用方法如下:
# F8 H0 X- O3 p. `5 t1 K% U7 u+ }2 ?7 {: t' \
db.user.find({"age":{"$gte":18,"$lte":25}})& i$ A. L1 J5 P X! D+ V& X' x
& y/ S0 O4 {% G1 [
1 v) E' e, j5 j) L( i* {8 b- J
4 f) }' Y0 t3 D9 h/ |8 y对于日期的条件查询方法:
( g; w* M4 ?& I7 u% [+ D# g; y* @
& ]3 s$ v/ J0 b* edb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}}) J& a8 Y; H; c: P7 y5 q7 N7 P
# E+ x0 t4 s# C0 _ g, S9 F) U" x+ t1 t+ \$ w9 J8 Y, K, _
, j, n5 F+ j. S7 r
2) 不等于 $ne3 h% i c! S5 f
$ m& p, [, w6 ]
例子:; T2 B0 v. e' v# A* z4 I- C# q$ z
; R9 r) @: l& ]& Y! @& \; v/ `db.taobao.find( { age: { $ne : 10} } );
5 \+ I( c1 d$ R' G/ c5 f# [/ _8 J/ zphp7 查询mongodb方法大全
- h& c6 l* x( A8 M2 l8 i& m3 U( S% _2 s6 e+ u* C5 d
# u. O5 {8 @( N- ^. o; X
* [( C, v* H- p8 ?
0 L; G2 A1 M" g- `7 M& |/ W& w' F0 x3 @& M& t+ E% I& Q
3 t6 E ^9 {- _9 o& U
! P7 m* e; Y6 p* T; B2 M& ^! W
! u% H9 T0 d# Y2 q
2 {% B% \7 N' w4 r6 e" B9 k! @( F
3 x; f, E3 _, @! j3 R
: U: b, q9 k( K3 n" f
|
|