管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
! m2 @6 G; r; f9 Y. ~- d8 X7 ^
2 R- p* B; w6 t7 I: ]5 ?3 _: qdb.getCollection('student').find({'age':{'$gt':'20'}})% B6 ?& T1 N* ~( M
( R0 j6 A M G1 [
1 R; D6 O8 C$ z8 c+ A/ [
$ g' K: E* V5 p9 `6 R( ?. W: X$lt < (less than )4 Q) S q* ~- m* l" g
; {1 e- n7 a) F1 _+ e4 W9 T2 r2 @3 [
$lte <= (less than or equal to )
: k0 b2 x+ R8 {. l# o5 L; {) I4 P4 X% m2 a/ U
$gt > (greater than ). n, g8 g1 j9 d5 u7 Y
4 F) P* Z- r% w$gte >= (greater than or equal to)
" J% O% v7 P9 g- i3 j
) Y3 c! R3 B3 C$ P& q8 J- t
. I) w0 n# _% a/ {) e1 g8 e: C4 N/ l& _, p4 j1 |
$ne != (not equal to)不等于 {'age': {'$ne': 20}}1 ?) s2 e4 D# v2 Q( s
- E) }& v6 Z$ T) X
$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list, T6 o4 [: X, K: V
, F- O- g3 v" \$ @* y
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list$ ~! C7 ]' ?* U/ x7 h& K
" ?# C, f) M/ D; M9 x' O+ b9 L& M; |
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字% O% t+ A5 n8 P% {( _8 r
' m0 J( H0 u) V4 ^5 G! E1 u$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在. R3 A3 _( a c# E3 K
$ }# H& J' O. v$type 类型判断 {'age': {'$type': 'int'}} age的类型为int& ^9 B( m7 X) L
) L! g& _2 E& `/ g- a/ v$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串4 j' ]' F( ]* o7 ?
+ Q: D. X+ G- h# U2 }4 V$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})1 `/ e2 v3 h( Q8 m, [
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
9 \# `) }% |- {
/ b% p* t# S+ J) X: S! f) |$exists 键是否存在 {finaGoalLine:{'$exists':true}}
, O+ R% u% `1 l {. R! b5 y `0 r
$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]9 ]) p/ S; V2 |: Q
: z B4 p) c. R+ Q$ d; n1 h$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
+ v+ U) }4 N0 S$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
" Q4 n5 G: Q$ y: Y4 B$ P5 U5 H$ U
! S7 r4 U8 _7 z2 e2 t8 i' @0 K4 S! Y
7 H, q9 a: ^- M, _
+ L7 X2 j: T: h, f( D Z3 ?# Y8 `, _( `( g# A2 z% P
* k, I5 t2 H9 Z8 [& v8 l Z2 Y
7 v7 m- C! ^1 g! ~3 c5 {1 e. S/ e: i0 ` T! ~( O( g
组合使用方法如下:8 [+ v; u6 ~+ e. Q
* }* U: i) m: B4 `* S7 O* l
db.user.find({"age":{"$gte":18,"$lte":25}})
* i: d- E! l2 b$ u- b B
- r5 R8 g) g+ I V1 \) L
! _! j9 v8 f O, A& u' u0 P% o6 ?# t6 J5 ]7 D' \
对于日期的条件查询方法:! U7 b) c% }/ l& k3 J' \& K0 s
4 m: @1 a$ Q0 s5 R {' Z( N
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
' x0 P# g3 t$ Q \; D+ N6 [8 Y7 ?% R/ l7 E D' M6 Y0 ?
8 G& m1 W" C- {( i9 U6 x
/ |+ J6 g# h! G, r2) 不等于 $ne
! M& F' O3 D5 _% h; X0 [) R$ R; R3 B5 j5 O
例子:
, p$ Y$ i/ w4 b; r* \3 V; \5 o( T7 {# r9 h/ s# |2 c, @1 j& b5 O( R
db.taobao.find( { age: { $ne : 10} } );
8 U2 G' f6 A y8 W2 T+ x9 j! _php7 查询mongodb方法大全7 t; |' W. ?5 o ~
" T3 v1 A3 f# W5 C _
9 r0 e7 u, b$ V4 x/ p' `' ?& z' [$ j3 \4 e
* \3 }" `( L: _; U4 D" }) K
; ~8 V% l* ^% H) y, U. [
: q$ G* s. }8 c
$ i2 d1 i, a) v+ L- u E+ ^# D
8 w" L$ i2 u8 j4 e/ ]" @
" u- X) M$ S: `6 X2 d% G" M/ _& B
9 w8 d6 M& m6 ^7 A, J4 U& r( ]4 c( I, @6 a2 G& C2 m8 c! ~, L4 \# j
|
|