mongodb使用总结
来源:互联网 发布:北京匡恩网络拖欠工资 编辑:程序博客网 时间:2024/05/29 10:11
一、简单的条件查询
db.getCollection('cdt_shop_act_info').find({"rls_status":"1","shop_status":"1","status":"1"})
多个条件用","隔开。相当于mysql的where and查询
二、in 和 nin
db.getCollection('cdt_act_info').find({"banks":{$in:["华夏","招商"]}}) db.getCollection('cdt_act_info').find({"banks":{$nin:["华夏","招商"]}})
三、mogodb查询数组元素
db.blogs.findOne(); { "_id" : ObjectId("502262ab09248743250688ea"), "content" : ".....", "comment" : [ { "author" : "joe", "score" : 3, "comment" : "just so so!" }, { "author" : "jimmy", "score" : 5, "comment" : "cool! good!" } ] } > db.blogs.find({"comment":{"$elemMatch":{"author":"joe", "score":{"$gte":5}}}}); > db.blogs.find({"comment":{"$elemMatch":{"author":"joe", "score":{"$gte":3}}}}); { "_id" : ObjectId("502262ab09248743250688ea"), "content" : ".....", "comment" : [ { "author" : "joe", "score" : 3, "comment" : "just so so!" }, { "author" : "jimmy", "score" : 5, "comment" : "cool! good!" } ] }
这样做,结果是正确的!利用条件操作符“$elemMatch”可以组合一组条件,并且还能达到的“点表示法”的模糊查询的效果!
四、复杂数组对象的in查询
db.getCollection('cdt_act_info').find({"banks":{"$elemMatch":{"bankName":{$in:["华夏银行","招商银 行"]}}}})
五、大于,小于,大于或等于,小于或等于、不等于
db.getCollection('cdt_shop_act_info').find({"is_hot":{$ne:0}})
$gt:大于
$lt:小于
$gte:大于或等于
$lte:小于或等于
六、MongoDB中的null和不存在
查询集合cdt_shop_act_info中y的值为null或者不存在
db.cdt_shop_act_info.find( { “y” : null } )
查询集合cdt_shop_act_info中y的值为null,(仅返回y的值为null的数据,不会返回不存在的)
db.cdt_shop_act_info.find( { “y” : { $type : 10 } } )
还有一种写法如下
db.cdt_shop_act_info.find({“y”:{“$in”:[null], “$exists”:true}})
查询集合cdt_shop_act_info中y的值不存在(不会返回y的值为null的数据)
db.cdt_shop_act_info.find( { “y” : { $exists : false } } )
七、基于坐标的聚合管道查询
db.cdt_shop_act_info.aggregate([ { $geoNear: { near: { type: "Point", coordinates: [ 121.279015 , 31.385134 ] }, distanceField: "calculated", minDistance: 1182.51889505108, maxDistance: 20000, query: { "status": "1","shop_status":"1","rls_status":"1" }, num:5, spherical: true } } ])
注:{经纬度有范围限制,应当注意,如果超出范围会报错;在建立索引时经纬度超出范围也会报错导致索引无法建立}
八、删除表中重复数据 sql语句:
var res = db.cdt_shop_act_info.aggregate([ { $group: { _id: {shopid: '$shop_id',actid: '$act_id'},count: {$sum: 1}} }, { $match: {count: {$gt: 1}} }])for(var i in res._batch){ var shop_id = res._batch[i]._id.shopid; var act_id = res._batch[i]._id.actid; var count = res._batch[i].count; for(var j=0;j<count-1;j++){ db.cdt_shop_act_info.remove({"shop_id":shop_id,"act_id":act_id},true) } }
九、mongodb增加字段
db.cdt_shop_act_info.update({}, {$set: {act_click_count:0,act_sort:10}}, {multi: 1})
阅读全文
0 0
- mongodb使用总结1
- mongodb使用总结
- mongodb mapreduce使用总结
- mongodb 使用总结
- Mongodb使用总结
- MongoDB使用总结
- mongodb使用简单总结
- mongodb使用总结
- Mongodb总结4-Spring环境使用Mongodb
- 使用MongoDB类操作MongoDB数据库总结
- MongoDB错误和使用总结
- Mongodb的主从复制使用总结
- MongoDB Replica Set使用几点总结
- Mongodb知识及使用总结(一)
- MongoDB使用总结(C#版 潘鹏)
- Spring MVC中使用Mongodb总结
- nodejs初期开发总结--MongoDB使用常识
- Spring MVC中使用Mongodb总结
- Oracle 子查询展开(subquery unnesting)
- 稀疏编码及其改进(ScSPM,LLC,super-vector coding)
- 【差分约束系统】POJ3159[Candies]题解
- 省市接口数据
- MyBatis入参为数组类型和List集合类型的foreach迭代
- mongodb使用总结
- Oracle_2
- leetcode237题解
- 遍历Map的四种方法
- [NP] 8.9
- 设计模式之观察者模式
- 【Linux】中TCP_server的实现
- 无线AP人员定位实现调研以及方案编写
- IReport常见问题整理