管理员
   
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下:
; f9 ?4 ~* f3 ^1 j& o' t0 J; Y8 l O3 u9 l1 A0 c* I! e
db.getCollection('student').find({'age':{'$gt':'20'}})9 v( B8 M+ v9 N2 \8 \
( R6 l; e# B" k! E# B) t
. n9 r7 k4 ~6 J% S, V7 X. f( V/ H/ e) J: U
$lt < (less than )- E0 U6 q0 T+ L
J N4 ^' J( K8 W8 P) u# q) T$lte <= (less than or equal to )
0 Q; Z$ s( v7 ~# y( B- O" {7 M& Z" |6 L& T" ]1 N1 i9 Z( i) b& J
$gt > (greater than )$ U, ^8 P v: _6 Z
6 r8 [7 }% A( p. h+ l, _! _$gte >= (greater than or equal to)
" d n1 Y) O0 ^$ B, Q3 B8 ?# Q; {# H, S* B: K" J8 `$ _
* o- o; R$ T. V: Z0 e w9 ?
9 ~3 k0 p% s7 [) i4 Z2 o$ne != (not equal to)不等于 {'age': {'$ne': 20}}, s5 V0 }8 C5 R& }) t' e) y7 R) x( {3 w
$ S0 J- R, s. N+ }% h0 r. ?6 \1 E1 F$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list5 v* V0 B1 L2 S/ m
) U0 x1 ^- R! h% `* O8 O' ]
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list; [2 ^6 ^& k& U- x& t5 U3 Y
( u- m9 c8 }1 t, C# w/ O: I9 V
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字: F/ K6 F( W) s+ F9 f3 [* c, n7 L9 _
6 x& K$ j' }( {; F8 W- q9 k$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
& l8 w: a( W/ e
y" V! v8 B9 `6 [$type 类型判断 {'age': {'$type': 'int'}} age的类型为int5 L, [# w6 ]9 W: p' K) ?0 q
. O+ p. w6 o1 ~! F. L- y9 t
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串
: o6 S# P' I. I$ n9 b& s! ^ ?4 V( X6 Z% R9 h; w
$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
1 P# S G. B5 @2 R$ e1 X$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);& s( p/ ?2 G' e
. A" {% X, _/ z7 C/ _4 V
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
" B; B& j% ~6 H l$ I
5 \1 h% Y: s: ~1 X0 f# T4 g$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]]2 A8 `: \" ?; ]9 K4 c$ M# Y- h
- v6 G. G6 G2 w. ^$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
8 Q$ x3 G+ \2 {1 ?$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
. X# Z/ y9 m4 R+ _ T: d+ }9 V7 R8 J$ R/ K( T* ~; q9 C
8 x" R( T1 M T) R, g! }5 V, ^/ C9 d! {. C9 i: f' W( b4 W
6 d t1 ?& J0 }" i* M, R
0 e2 D ?8 Z; [9 {
, k& L: e, x. E, ~8 Q% j
0 U3 S+ f) t( z1 e2 u4 `* z
$ h6 l( n0 k) m' k- H组合使用方法如下:
8 p8 |9 V7 W" ~1 H# X9 x
5 o, o3 D: b& k' ?# udb.user.find({"age":{"$gte":18,"$lte":25}})7 L9 h7 E6 z$ V% | u' @
* x, V; O# h: M- m+ A
/ d6 S4 _+ K, g% T/ N3 ?8 `5 ]7 W0 H4 z/ {8 s* f' ]
对于日期的条件查询方法:
: r4 ^% I% n6 O- O+ M
, U7 P) \% V }$ Q/ ddb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})3 l3 p' e9 q8 v& P* X
& m/ \/ ]2 r" I5 I7 N
, y; H* E) R# Q# N
. q& l R) @' x5 G+ U2) 不等于 $ne+ Q0 a q! s( i! U7 m
5 y, @$ _# p# ~; n* F4 x4 m, X例子:
/ u" {0 R0 D& e9 V) J" [- h+ ~: ]6 m
db.taobao.find( { age: { $ne : 10} } );
, a2 H) {7 P# u) K' b, qphp7 查询mongodb方法大全! r+ m+ y3 P) O
3 R* M2 `8 k% o! Y" j% Q
5 w: k l: D _1 [& H& b% i% F
5 {0 x3 E; i- @( o% y- J* T; O! ?& H* D! i6 m; U
& V! b3 r. |2 W5 x
+ Z* t* k; @8 m0 p( g1 |* n4 A# Z
- @8 s0 w+ f$ B
% p# t9 h9 {8 D
1 a; t! T$ n& V5 c7 ], I7 p
, a+ z+ C+ i: \
+ N! e+ F; ~* t" \9 ^! }5 R/ E, E- p
|
|