管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:( x8 ` [+ e* Y& v) q5 F* v
+ G K, V+ }) c) L" y0 `db.getCollection('student').find({'age':{'$gt':'20'}})7 d' i9 Z& o) x( }) l% V
9 g& H5 U! f. f& g0 q& \6 ^
4 u# g: b6 @+ q
0 s6 z! Z' {9 L& ^, ^: D7 H+ t" W$lt < (less than )
: C6 _$ ^1 R3 P/ _; E1 L5 g* H6 q
$lte <= (less than or equal to )
1 F# ^# P; W3 _, L9 U# k" I$ u: p5 _
$gt > (greater than )
7 c1 p8 n& y3 J2 R( D$ ]4 c- P( L
$gte >= (greater than or equal to); R( I8 X1 y- ^1 w5 W7 L- A6 _8 g
/ j2 N" j" i, q% `, U7 e
# [" P, b: Z" G: M e& D j* z" u |; B
$ne != (not equal to)不等于 {'age': {'$ne': 20}}
) _, o+ U; h- z/ M. E& f& H1 U' Y$ X/ _5 m5 d
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list& p1 y# c6 @* m% Y8 m { w
+ m# ]6 Q0 p1 Y. U4 J- K
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list, V2 L) l6 _- b
/ f% _% u" V. k. Z7 L c3 V( o
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字
! e: f8 L2 ~. @: X
$ F' B0 f" ^8 y$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
: Y2 F& Y: h" {" P$ k
" w0 Y8 G0 M$ g$type 类型判断 {'age': {'$type': 'int'}} age的类型为int* D/ b6 ]/ M( l* x0 A2 l
2 @8 v( j0 \, f8 i4 `& t) b( A' N8 {$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串/ s+ o/ i3 _: p; n( b6 b
2 Y. `3 t/ {: @. x2 `4 L6 ?$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
. E. O7 S( P* L* T$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
2 V9 ]: a' K( A/ G; n' n; a- `. m: u. X& @& I
$exists 键是否存在 {finaGoalLine:{'$exists':true}}- }% c, S% h+ l! [
" u1 Z3 u3 s2 T, Q
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]
8 J) U# e2 J8 m5 A' e
. ?. q5 e% P/ B4 j I4 r2 s$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
+ Q: G* H+ W9 b$ M9 b# z* A- I1 ?$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3 0 @- b0 \0 X# p7 a
6 ]! c* D0 p6 A2 r" R3 [- |7 Q9 q
F, c8 h2 d4 v+ q# D/ @* a- R8 ?1 p' D# E& E. P
# i" `2 P! Y) C6 \
. W Z. d" {1 Z B; m& r: F) V: P/ ~# U- G% v
& o% N1 }4 x$ t! p9 l
/ z: f Q0 Y& r0 C3 b# N
组合使用方法如下:( H+ R0 b, C! Z! P4 K
( R: J. s2 ^/ e7 z7 ?2 o3 bdb.user.find({"age":{"$gte":18,"$lte":25}})
$ f8 M% `7 N( x; M- [& L, @: w& N; @* a) [) @
{7 [& W3 i6 S" F" r# i) K _' Q+ x0 G$ C/ O
对于日期的条件查询方法:9 c" j) h' \3 F- |
% }( H5 q G; z4 o& Adb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})- F0 B8 n, a3 I
% w) z. v+ o- d5 C
2 e& n& T) g& z3 F- v) ~, G. i3 l* N% L' I* m3 ~. A
2) 不等于 $ne
. H. O, ~5 X3 |
( S' f* Z# k2 l% O2 g1 M6 C例子:
: r+ ^5 j9 J9 u4 w5 H6 @# g
- {- ?/ b- m# {. b) adb.taobao.find( { age: { $ne : 10} } );/ ?% A r4 c+ I6 A. C
php7 查询mongodb方法大全" D3 I% W5 Y" G# w# I1 ?
6 r- \* B' c2 }5 f5 e' l. a
* q% g1 ~( t9 b. ^. O9 }' B- C! f1 ]5 M4 P
; A8 k& a0 Q; D! x2 ~7 y9 k/ W* ~4 Y% i
: i3 @1 p& Z: O" e% l& u
0 u) c9 J8 z& H& _
" W9 `+ L$ F2 C4 O! b/ I3 q G/ U* S2 R1 ?# o$ R: \
4 }1 r X# ] } X# L1 _2 b$ ]
8 u9 Y- g$ \0 x& q! ~
$ X, D9 Q5 a! }9 v. r# z |
|