管理员
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:4 s8 l# }0 i; V" Q# Y/ H
5 P H( F" V" K" j$ h" S: sdb.getCollection('student').find({'age':{'$gt':'20'}})# p6 \9 F8 h/ G& g8 v" Q2 j, e% X
7 {9 Q. \7 ]% H* ]" m. l. d4 |1 \: J
; ]4 O! ]# b% B4 C5 Q# z
6 `" G( ^& Z( e$ F5 b- X$ E$lt < (less than )8 A- l( S* _4 I7 l: i2 G2 A0 M) L
k0 K% n$ L; t6 P* b& X% Q- I
$lte <= (less than or equal to )% J4 X/ Y3 [5 [4 E
2 T, j' } ?" s) E& m, b, m/ ?: l$gt > (greater than )
2 j, Y9 l/ m0 H, b B$ _( ]; @% |0 X- @: P( V$ g
$gte >= (greater than or equal to)
! l, p" y& N8 w9 N* }
3 p' s3 F8 j) T% I7 d i5 q( Q% H3 `7 n* D$ t" M
: Z. n( Z: @6 p$ q$ne != (not equal to)不等于 {'age': {'$ne': 20}}$ c7 e& [( a5 s- F
" I7 R9 J& l0 M& F9 ^: j5 \7 b$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
" O! k+ L7 Z, J
5 D9 d5 n" k3 E, ]8 P" }3 B- |$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list
. ]: v/ a- a4 O) \9 v
$ D$ t, K! U0 r$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字- ]) q$ y" {) f( M1 l+ A' P1 _
% \1 n6 v0 {7 R7 r/ B6 V, r5 j
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
. g Z& \( z1 e3 c
5 q6 `# `" ~: U' ^4 H$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
/ z: f( @- r4 L8 @$ N* T2 Q( Y+ o9 s+ e/ D4 C1 q
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
+ d2 U# @* q2 W7 z
6 o: D4 \8 V4 F, t$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
" M- g8 f H( ~: V$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);2 K4 l5 m# ?' p2 k% r" z5 f
; L" Y* X, {# P$ N8 b4 ?$exists 键是否存在 {finaGoalLine:{'$exists':true}}
% c+ F b8 d% Y) w" y$ z) _
/ P# j. [9 v& p7 d# ]$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]( g2 ^- H9 C0 S6 J
6 M7 `& T0 ]. ^5 h0 c: Q4 N$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],% ^" r, \7 @6 f0 G' [: V: x
$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
) M' y$ Y! ]3 a- s
. b' ]( P6 \. p, {1 G- Z# D( R/ u: J
# b f" G' s2 B. q4 |1 Z: o4 _+ ?
1 R& x% x" g5 X0 f, N, G* ]! j3 u* b, I( n
! c$ v! F4 K+ w% \7 }9 H# r
- k1 ~9 z' f1 g2 F' d# f, ]: p" Y* z4 u8 ~8 l( a
组合使用方法如下:& a$ i, n3 ]* k2 Q
; v5 |' R0 p2 p* |1 tdb.user.find({"age":{"$gte":18,"$lte":25}})! q' B# V) X4 O) `" e( o) Q/ M# a
1 w" D$ e' e5 w
0 K# {7 ^( T/ F3 c$ r6 W
5 J9 _. A+ v k+ c) u% D( F. h( N对于日期的条件查询方法:7 x$ A/ i! j- K$ u
* U2 E' `# D$ g7 ldb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})
+ s* R0 `$ V8 D: u' J0 [2 A& Q
. P# R; A3 b' ^% L$ f1 {
, X0 w- N( i' y; ]1 U f, ]0 @% T8 p& W1 _3 U# }/ Y. Z
2) 不等于 $ne
, f) S2 N: j' ~: ^
& Q; @9 Y. `- U2 X' E例子:
7 ] a0 L* l2 R6 t6 q9 `; T4 F! W. d4 q2 E5 C, q# Z
db.taobao.find( { age: { $ne : 10} } );
* p+ k7 n( V! s- ?( n$ o7 lphp7 查询mongodb方法大全6 T8 [; T1 ^( }% N; V0 M
& Y' x; ?+ k2 s: C K- V/ U6 F3 E$ K" K6 j
2 f( v; w5 n3 m
9 m1 Q' C4 M' F
1 {2 g4 l+ @% q4 r; z% ?. i4 R( R" [ ]8 s# l
. M& c" f! ? w* k1 x. g9 N' y) r9 G( G+ s4 i) K
* K% r$ i$ v- a0 S$ h
# _. k0 |8 @( I6 s6 Z1 R: D3 J7 h/ S& a2 C
( @# Z& s$ y1 x( s8 X( x u
|
|