第三部分查詢選擇器
3.1比較選擇器
[eq:equal,g:greater,l:less,t:than,n:not,in:in]
1.$eq ???:對(duì)比值等于指定值
2.$gt ???:...大于...
3.$gte:...大于等于...
4.$lt:...大于...
5.$lte:...小于等于...
6.$ne ???:對(duì)比值全部不等于指定值
7.$in:指定數(shù)組包含對(duì)比值
8.$nin:指定數(shù)組不包含對(duì)比值
3.1.1 $eq
配置鍵值對(duì)[兩種寫(xiě)法]
#eq
db.test1.find({"age": {"$eq":18}})
{"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score": [20,40] }
#省略, 結(jié)果一樣
> db.test1.find({"age":18})
> db.test1.find({"score": {"$eq":80}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} ?#省略, 結(jié)果一樣 > db.test1.find({"score":80})
匹配數(shù)組
#無(wú)結(jié)果, 因?yàn)樵诖耸窍喈?dāng)于 db.test1.find({"score": {"$eq": [20,30]}}) > db.test1.find({"score": [20,30]}) > db.test1.find({"score": [20,40]}) {"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score": [20,40] }
3.1.2 $gt除了數(shù)字可以比較之外,不能忽略BJSON其他類型都可以比較
數(shù)字
> db.test1.find({"age": {"$gt":20}}) {"_id": ObjectId("58c8dc54ef9b994487420f2a"),"name":"lisi","age":29,"score": [40,60] }
字符串同樣可以比較更多參考BSON Types
> db.test1.find({"name": {"$gt":"lisi"}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} {"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score": [20,40] }
3.1.3 $gte
> db.test1.find({"age": {"$gte":19}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} {"_id": ObjectId("58c8dc54ef9b994487420f2a"),"name":"lisi","age":29,"score": [40,60] }
3.1.4. $lt
> db.test1.find({"age": {"$lt":19}}) {"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score": [20,40] }
3.1.5. $lte
> db.test1.find({"age": {"$lte":19}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} {"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score": [20,40] }
3.1.6 $ne不等于指定值
> db.test1.find({"name": {"$ne":"xiaoming"}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} {"_id": ObjectId("58c8dc54ef9b994487420f2a"),"name":"lisi","age":29,"score": [40,60] }
3.1.7 $in符合指定數(shù)組內(nèi)的任一個(gè)即滿足
> db.test1.find({"score": {"$in": [90,100]}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score": [90,80],"qty":10} > db.test1.find({"score": {"$in": [89,100]}})
3.1.8 $nin指定數(shù)據(jù)都不屬于指定數(shù)組的子集
#三條數(shù)據(jù)全部不存在89100, 就輸出 > db.test1.find({"score": {"$nin":[89, 100]}}) {"_id": ObjectId("58c8dc54ef9b994487420f29"),"name":"zhangsan","age":19,"score":[ 90, 80 ],"qty":10} {"_id": ObjectId("58c8dc54ef9b994487420f2a"),"name":"lisi","age":29,"score":[ 40, 60 ]} {"_id": ObjectId("58c8dc54ef9b994487420f2b"),"name":"xiaoming","age":18,"score":[ 20, 40 ]}