管理员
![Rank: 64](template/yeei_dream1/css/yeei//star_level3.gif) ![Rank: 64](template/yeei_dream1/css/yeei//star_level3.gif) ![Rank: 64](template/yeei_dream1/css/yeei//star_level3.gif) ![Rank: 64](template/yeei_dream1/css/yeei//star_level3.gif)
论坛积分
分
威望 点
贡献值 个
金币 枚
|
查询表中学生年级大于20,如下: ^0 E$ [& M* w
% v+ F& h1 h) d+ e( ydb.getCollection('student').find({'age':{'$gt':'20'}}); C9 d4 W7 L8 Y, }& y) v
- u% A9 d- e/ |
9 ?0 N$ D7 U" ?' [+ I W$ h) W% }& r! `0 F
$lt < (less than )& p$ E; k& m% N( c
( O5 [, S Q7 g$ P4 k$ K' b
$lte <= (less than or equal to )0 e4 E3 ^# T. K2 c: T( g% ~8 j
) {5 Q# o7 G! R$ F4 |2 ?$gt > (greater than )9 W$ D) l6 w: @6 G& [
9 P( i2 ]5 }/ {9 H# b$gte >= (greater than or equal to)/ P. I% B/ |2 P( M! s* L' { g
1 D# @1 { o) n P+ T
" [, M' ?3 j% j( S A+ d" \3 @" b5 w
5 w8 v/ i, K* ?0 W% s$ne != (not equal to)不等于 {'age': {'$ne': 20}}
: n4 @, @; Q z) _" M$ j. ?9 x. X
5 V4 s& p% p# B: C% c$in 在范围内 {'age': {'$in': [20, 23]}} 注意用list
$ T1 Z( p+ W2 B* }. ^+ M2 m, a, b: w8 O" y6 L( R: ^" t
$nin (not in) 不在范围内{'age': {'$nin': [20, 23]}} 注意用list5 L: ?1 u/ |# }! P& Y+ @
! w$ D& I* E3 {, r8 d$ o. e7 z$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}}) 匹配以M开头的名字 r" x6 G4 Q2 R9 Q5 ~% _
* M8 w( y1 Q7 `/ B) @" ^$ |- P
$exists 属性是否存在 {'name': {'$exists': True}} 查找name属性存在
- @: F0 S% U7 Z9 W8 X }( v
# K# ] z* ~ H L' i0 L$type 类型判断 {'age': {'$type': 'int'}} age的类型为int
$ ?( c- M& h' P* }# ]8 ^2 G1 Z( b: a% d
$text 文本查询 {'$text': {'$search': 'Mike'}} text类型的属性中包含Mike字符串 e# s) i- g% @
9 V" g. D, d. l2 y) A/ p$ q/ Y% L# [$or 查找多种条件 ({'$or':[{'name':'chen'},{'name':'wang'}]})
, `0 N! E3 ^4 L0 B$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
1 N% ]2 @- u, ]6 C5 p9 \, W p7 u$ N5 o/ k# C& [
$exists 键是否存在 {finaGoalLine:{'$exists':true}}
8 Q. B. ~" S5 z$ p/ J' a/ h
+ ]+ f' B+ ?% O& O$all 如果您希望找到一个包含这两个元素的数组 [ 'tags' => [ '$all' => [ 'red' , 'blank' ]]] S8 K: h. F" r! [& E% h/ `
/ `: i, M7 E* d( p$ S$elemMatch 运算符在数组的元素上指定多个条件 'dim_cm' => ['$elemMatch' => [ '$gt' => 22,'$lt' => 30,],],
9 T8 r7 x _% M5 j; b6 [$size 运算符按元素数查询数组 [ 'tags' => [ '$size' => 3
4 j- T3 I( ^9 E0 @# E# V5 Z3 v
3 m/ j" I8 H, m- K9 }5 j
" {! @' a) e8 k. c6 J3 q# E8 P. k5 j6 G4 q& W5 ?( T1 Z( y
/ M& h, U% {* T
7 S3 {0 _2 t) T$ @0 w# c1 w$ @" ~$ Y
! a1 U& k( M1 r+ Y, \& |( ^
3 R& v% u0 t( T8 t3 Q8 p6 w
- Z/ _9 J. } |2 j' v' F组合使用方法如下:
5 F5 ?3 ?: w& J' N
, F# f7 B: u) w: {( e* xdb.user.find({"age":{"$gte":18,"$lte":25}})
4 h6 u# s3 p0 H# c9 A' {5 F; |' g. _# M X, B7 O2 u, ?" }0 o W
9 S' x2 U }5 p g" s) h
E2 X+ q5 k+ k2 J对于日期的条件查询方法:
& J$ `& A% ?' r2 j7 y1 f3 j6 b1 h) j( O+ I6 t9 P; D$ C4 D
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11 11:0:0'}})+ _/ B! ?( T6 I) k4 E o% I
# J) [" ~" @3 d! T" A6 C4 k- k
5 X2 w$ H+ V( x
0 {# ]4 T# I1 _7 U8 J
2) 不等于 $ne3 b {* E( z9 B, G
! ~/ u9 w, O V
例子:
3 p1 E C* D8 K/ B# j ?
2 }) O: P7 [3 X. rdb.taobao.find( { age: { $ne : 10} } );
$ D1 \ Y$ l* Z( V- Uphp7 查询mongodb方法大全$ ], F- Q5 B+ b+ w* x8 x0 s
. o. {" W/ J; s( [& {9 _) g$ r% o1 {3 A: q* e3 d
$ R0 ]% t' y, l+ b
+ a0 [4 t- u6 x
( i- v: Z% r- q {7 U3 D/ |2 D
9 ?6 |( s/ H/ ?- j% q; p+ I
# `. h0 M. c$ [& n# N, ]
& r; w7 I' c: Q: b/ L! [3 Z- o: q k+ h2 S- _
" p. [" u: r) j/ M/ L9 w$ v0 \" E
0 o, Y9 @, g3 a* ]* f, ^6 [1 J! J, q! E- X3 K& M3 E1 L# U+ T
|
|