- 浏览: 2663811 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
MongoDB (from "humongous") 是一个可扩展的,高效的,面向文档的数据库。它的作用是介于关系数据库与key-value数据库之间的一种数据库。它具有如下几个特点:
- 面向文档的存储结构:它底层是用一种叫JSON的结构来做为基本的存储单元,以此来提供动态的Schema,
- 对任意属性的索引支持
- 数据冗余与高可用性
- 数据的自动分片
- 丰富的查询模式
- 支持Map/Reduce数据流处理
- 基于GridFS的文件存储系统
2. Quickstart 64-bit linux
下载: 略
安装: 略
配置
#bind_ip=192.168.172.8
logpath=/duitang/logs/mongodb/sys.log
logappend=true
fork = true
启动
mongod -f /duitang/dist/conf/mongodb/mongodb.conf
3. 一些简单的数据库操作语句
3.1 建立数据库连接
./mongo foo | connects to the foo database on your local machine |
./mongo 192.168.13.7/foo | connects to the foo database on 192.168.13.7 |
./mongo dbserver.mydomain.com/foo | connects to the foo database on dbserver.mydomain.com |
./mongo 192.168.13.7:9999/foo | connects to the foo database on 192.168.13.7 on port 9999 |
3.1插入数据
之前我以为需要先创建database,结果找了半天没有找到命令,原来第一次插入数据会自动创建数据库:
use shopping_item data = {title:"nike",price:"98.99",sold:"59",status:"new",url:"http://detail.tmall.com/item.htm?spm=a1z10.1.w1036274.5.vDxCGX&id=14413088156",sourceType:"tmall",picUrl:"http://img02.taobaocdn.com/imgextra/i2/573736914/T2Gh1hXhRbXXXXXXXX_!!573736914.jpg",createDateTime:Date(),shop_id:1,catetory:"nike"} db.taobaoitem.insert(data) db.taobaoitem.find()
输出:
{ "_id" : ObjectId("5085011058871808a1856f9f"), "title" : "nike", "price" : "98.99", "sold" : "59", "status" : "new", "url" : "http://detail.tmall.com/item.htm?spm=a1z10.1.w1036274.5.vDxCGX&id=14413088156", "sourceType" : "tmall", "picUrl" : "http://img02.taobaocdn.com/imgextra/i2/573736914/T2Gh1hXhRbXXXXXXXX_!!573736914.jpg", "createDateTime" : "Mon Oct 22 2012 15:58:50 GMT+0800 (CST)", "shop_id" : 1, "catetory" : "nike" }
这是的"_id"字段是数据库自动增加的。
批量插入:
for (var i = 1; i <= 20; i++)db.taobaoitem.insert(data)
3.3 数据查询
使用游标来操作数据集
var cursor = db.taobaoitem.find(); while (cursor.hasNext()) printjson(cursor.next());
返回指定的字段数据
db.taobaoitem.find({sold:"59"}).limit(3);
db.flashBar.find({}, {"tagId":1,"eventId":1})
OR查询
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
3.4 删除数据库
db.dropDatabase() { "dropped" : "shopping_item", "ok" : 1 }
3.x 相关资料
当然,MongoDB支持一些更加复杂的查询,如OR,AND,Group by等,可以参考如下
http://www.mongodb.org/display/DOCS/Manual
http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html
4. python客户端的介绍
4.1 安装
$ git clone git://github.com/mongodb/mongo-python-driver.git pymongo
$ cd pymongo/
$ python setup.py install
4.2 简单使用
>>> import pymongo import Connection >>> connection = Connection() 你也可以指定IP与端口号 >>> connection = Connection('localhost',27017) 得到一个数据库 >>> db = connection.test_database 或者用这种方式 >>> db = connection['test_database'] 得到一个数据集 >>> collection = db.test_collection 插入数据 >>> post = {"author":"bob"} >>> posts = db.posts >>> posts.insert(post)/ 输出所有posts表中的数据 >>> for post in posts.find(): >>> post 分页,排序 flashUnitColl.find(param, fields).sort(sort_cond, pymongo.DESCENDING).skip(int(page) * int(page_size)).limit(int(page_size)) 删除 import bson shopping_item_dao.remove({"_id":bson.objectid.ObjectId(id)}) like 和 OR 查询,分页: def query(self, query_param=None, order_param=None,page=0,page_size=15): ''' 查询 query_param: 查询条件,{catetory:''} order_param: 排序条件(按照价格降序):{order_by:'price',order_type:'desc'} ''' param = {'status':'new'} #默认查询条件 order_by = '_id' #默认排序规则 order_type = pymongo.DESCENDING #默认排序规则 if query_param: _ca = re.compile(query_param['catetory']) param['$or'] = [{'catetory':_ca,'title':_ca}] if order_param: order_by = order_param['order_by'] order_type = order_param['order_type']=='desc' and pymongo.DESCENDING or pymongo.ASCENDING return shopping_item_dao.find(param).sort(order_by, order_type).skip(int(page) * int(page_size)).limit(page_size)
python API:http://api.mongodb.org/python/current/api/pymongo/cursor.html
修改操作:
flashBarColl.update({},{'$set':{eventId:41,tagId:135709}})
进入mogo client
mongo 127.0.0.1
显示帮助
help
查看有哪些数据库
show dbs
admin 0.203125GB
使用某个db
use admin
查看db下的表
show collections
system.indexes
system.users
查询
db.system.users.find()
db.flashBar.find({}, {"tagId":1,"eventId":1})
修改
db.flashBar.update({eventId:40},{$set:{eventId:41,tagId:135709}},false ,true ) db.unreadCount.update({notices:0},{$set:{notices:1}},false ,true )
mongo支持like查询
Pattern p = Pattern.compile(msg); Query cond = new Query(Criteria.where("msg").is(p)).limit(limit).skip(next); if (order == 0) { cond.sort().on("_id", Order.ASCENDING); } else { cond.sort().on("_id", Order.DESCENDING); } List<Comment> cmts = mongodbs.getBlogDB().find(cond, Comment.class);
Query Options
Field Selection
In addition to the query expression, MongoDB queries can take some additional arguments. For example, it's possible to request only certain fields be returned. If we just wanted the social security numbers of users with the last name of 'Smith,' then from the shell we could issue this query:
// retrieve ssn field for documents where last_name == 'Smith': db.users.find({last_name: 'Smith'}, {'ssn': 1}); // retrieve all fields *except* the thumbnail field, for all documents: db.users.find({}, {thumbnail:0});
Note the _id field is always returned even when not explicitly requested.
Sorting
MongoDB queries can return sorted results. To return all documents and sort by last name in ascending order, we'd query like so:
db.users.find({}).sort({last_name: 1});
Skip and Limit
MongoDB also supports skip and limit for easy paging. Here we skip the first 20 last names, and limit our result set to 10:
db.users.find().skip(20).limit(10); db.users.find({}, {}, 10, 20); // same as above, but less clear
slaveOk (Querying Secondaries)
When querying a replica set, drivers route their requests to the primary mongod by default; to perform a query against an (arbitrarily-selected) secondary, the query can be run with the slaveOk option. See the slaveOk page for more information.
Cursors
Database queries, performed with the find() method, technically work by returning a cursor . Cursors are then used to iteratively retrieve all the documents returned by the query. For example, we can iterate over a cursor in the mongo shell like this:
> var cur = db.example.find(); > cur.forEach( function(x) { print(tojson(x))}); {"n" : 1 , "_id" : "497ce96f395f2f052a494fd4" } {"n" : 2 , "_id" : "497ce971395f2f052a494fd5" } {"n" : 3 , "_id" : "497ce973395f2f052a494fd6" }
更多文档参考:http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Group
发表评论
-
基于tmpfs使用mongoDB
2013-08-28 13:51 1648基本思想 将MongoDB ... -
mongoDB如何query is Null
2013-07-24 15:09 1225试了半天,原来通过 db.taobaoItem.find( ... -
mongoDB性能问题
2013-03-23 21:43 1036mongoDB在高并发情况下的性能存在问题。 ... -
mongoDB 性能测试
2013-03-05 13:33 2183最近对mongoDB 性能测试,200万条数据,文件大小 ... -
mongoDB为什么用virtual memory mapping
2013-01-28 23:57 1262原文: http://blog.mongodb.org/po ... -
mongoDB亿级数据量性能测试
2013-01-28 23:54 1236原文:http://www.cnblogs.co ... -
mongoDB 虚内存
2013-01-28 23:29 0http://blog.mongodb.org/post/10 ... -
MongoDB 关于索引的建议
2013-01-23 14:32 1138我们收到了很多关于索引的问题。这一部分解答了其中的一小部分。 ... -
mongoDB 索引
2013-01-23 14:12 926索引常常用来大幅度 ... -
mongos结构记录
2013-01-16 00:11 989mong client< ---> mongo ... -
mongoDB java简单记录
2013-01-11 19:02 11301. 数据格式传递 上个自己画的图 Mongodb-Jav ... -
MongoDB数据文件内部结构
2012-12-29 11:40 939有人在Quora上提问:Mongo ... -
MongoDB范围查询的索引优化
2012-12-22 15:08 1761源文: http://blog.nosqlfan. ... -
mongoDB意外关闭重启
2012-12-03 16:36 2377线上一台mongoDB意外关闭,重启的时候报错: o ... -
MongoDB vs Redis vs Tokyo Tyrant 测试对比
2012-12-01 17:19 0* MongoDB vs Redis vs Tokyo T ... -
mongoDB NUMA问题
2012-12-01 14:05 1216NUMA的含义,简单点说,在有多个物理CPU的架构下,NUMA ... -
mongo 监控常用命令
2012-12-01 14:05 973db.stats() db.serverStatus(). ... -
mongoDB的储存机制
2012-11-30 16:27 1722在MongoDB的数据文件夹中(默认路径是/data/db)由 ... -
MongoDB与内存
2012-11-29 16:07 830原文:http://huoding.com/2011/08/ ... -
理解mongodb的ObjectId
2012-11-14 00:29 2756Posted in nosql on 三月 8th ...
相关推荐
### MongoDB数据库简单介绍 #### MongoDB概述 MongoDB是一款开源、基于分布式文件存储的NoSQL数据库系统,它使用C++语言编写。与传统的关系型数据库不同,MongoDB采用文档数据模型来存储数据,这种数据模型非常灵活...
本篇将详细介绍如何使用Java连接MongoDB,以及进行基本的数据操作:创建集合、添加文档、修改文档、查询文档和删除文档。 首先,为了连接MongoDB,我们需要引入MongoDB的Java驱动程序依赖。在Maven项目中,可以在...
本教程将详细介绍如何使用Java与MongoDB进行交互,包括基本的增删改查(CRUD)操作。首先,我们需要引入MongoDB的Java驱动程序,这通常通过Maven或Gradle的依赖管理来实现。 1. **添加依赖** 在Maven的`pom.xml`...
### MongoDB介绍及环境搭建 #### MongoDB概述 MongoDB是一种非关系型、无模式的文档型数据库,被广泛应用于现代Web应用程序开发中。相比于传统的关系型数据库,MongoDB提供了更高的性能、可靠性和扩展性。 - **高...
通过上述介绍,我们可以看到 MongoDB Java Driver 提供了一种简单而强大的方式来与 MongoDB 进行交互。无论是简单的 CRUD 操作还是复杂的查询需求,都可以通过 Java 驱动轻松实现。掌握这些基本操作对于快速开发基于...
在本文中,我们将深入探讨如何使用Node.js和MongoDB搭建一个简单的博客系统。在这个过程中,我们还将介绍模版引擎Jade(现在被称为Pug)以及前端框架Bootstrap的应用。这些都是现代Web开发中的关键组件,让我们逐一...
MongoDB 数据库介绍、安装、使用 MongoDB 数据库是当前最流行的 NoSQL 数据库之一,以其灵活的数据模型、高速的读写性能和强大的扩展性而闻名。下面是 MongoDB 数据库的详细介绍、安装和使用方法。 数据库和文件...
在 MongoDB 中创建数据库非常简单,只需使用 `use` 命令加上数据库名即可。但请注意,此时创建的数据库并不真正存在,只有当向该数据库中插入数据后才会被创建。 **示例命令**: ``` use student ``` 随后可...
### Windows安装及简单配置MongoDB 3.6 #### 一、概述 本文将详细介绍如何在Windows环境下安装和配置MongoDB 3.6版本。MongoDB是一款基于分布式文件存储的开源数据库系统,它以BSON(Binary JSON)格式存储结构化...
例如,当数据模型简单、需要快速迭代系统、对性能有高要求、对数据一致性要求较低,或者需要存储复杂数据结构时,NoSQL 数据库如 MongoDB 成为了首选。国内外的大型企业和创业公司,如 Google 的 BigTable、Amazon ...
本教程将介绍如何使用Java编程语言,结合Jsoup库进行网页抓取,并利用MongoDB数据库存储爬取的数据,帮助初学者快速入门爬虫开发。 首先,我们来了解一下Jsoup。Jsoup是一个用于处理实际世界HTML的Java库。它提供了...
通过以上介绍,我们可以看到MongoDB的C#驱动为开发者提供了丰富的功能和便捷的接口,使其能够充分利用MongoDB的特性进行数据管理。无论是简单的CRUD操作,还是复杂的聚合查询,甚至是分布式事务,都可以轻松应对。在...
本教程将详细介绍如何使用C#访问MongoDB,实现基本的增删改查操作。 首先,我们需要在C#项目中引入MongoDB的驱动程序。MongoDB官方提供了`MongoDB.Driver`库,可以通过NuGet包管理器安装。在Visual Studio中,右键...
在本项目中,我们主要探讨如何使用Node.js和MongoDB构建一个简单的文件上传页面。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端执行,而MongoDB则是一个流行的NoSQL数据库,...
本书将会以简单、快速、高效的方式,介绍MongoDB的基础知识和基本操作,帮助读者快速入门。通过阅读这本书,即使你是数据库领域的初学者,也能快速掌握MongoDB的核心概念,并学会在实际项目中应用它。 对于希望深入...
目录 1 MongoDB的简介和安装启动.mp4 2 MongoDB服务器的启动优化.mp4 3 MongoDB客户端基础使用.mp4 4 MongoDB集合的多种查询条件.mp4 5 MongoDB索引查询与建立.mp4 ...17 MongoDB分片集群的使用介绍.mp4
### MongoDB与NoSQL运动简介 #### NoSQL运动的定义与特点 在理解MongoDB之前,首先需要了解NoSQL运动的概念及其重要性。NoSQL(Not Only SQL)运动是指一类非关系型数据库系统的统称,这类系统主要针对大规模数据...