惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Schneier on Security
Schneier on Security
C
Cisco Blogs
Help Net Security
Help Net Security
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
WordPress大学
WordPress大学
小众软件
小众软件
Jina AI
Jina AI
量子位
T
Threatpost
Forbes - Security
Forbes - Security
L
LINUX DO - 最新话题
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
有赞技术团队
有赞技术团队
博客园_首页
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Scott Helme
Scott Helme
博客园 - 【当耐特】
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
The Cloudflare Blog
S
Schneier on Security
爱范儿
爱范儿
N
News and Events Feed by Topic
NISL@THU
NISL@THU
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 马森

Java IO测试样例-字节流-字符流 java中的io系统详解 字符编码笔记:ASCII,Unicode和UTF-8 jQuery和ExtJS的timeOut超时设置和event事件处理 Sybase字符串函数-数学函数-系统函数 inux 设置系统时间和硬件时间 Sybase采用固定表+存储过程实现分页 Wordpress XML-RPC协议说明 struts2 action 配置方法 &&struts2的配置文件 理解 SET CHAINED command not allowed within multi-statement transaction. sybase性能优化 - 马森 - 博客园 Java引用对象SoftReference WeakReference PhantomReference(二) [整理]centos下配置和安装 jstl字符串处理 [原]动态打jar包程序,可用于手机图片音乐游戏的动态打包 Java,Tomcat,Mysql乱码总结 [原]output parameters have not yet been processed源自返回了多个数据集 [转]MS SQL Server数据库事务锁机制分析 tomcat支持ssl时Keystore was tampered with, or password was incorrect
MongoDB资料汇总
马森 · 2012-07-04 · via 博客园 - 马森

Mongodb是一个比较流行的nosql软件,windows linux mac平台上都有发行版本,经过测试,效率还是非常不错的,但是对内存的消耗非常大,因为使用了mapviewoffile,即直接将硬盘数据映射到内存,因此需要整片内存去载入(http://www.cnblogs.com/daizhj/archive/2011/04/25/mongos_mmap_source_code.html)。内存监控和管理还是非常重要的。

资料汇总:

mongodb下载:http://www.mongodb.org/display/DOCS/Quickstart

Java对应驱动:https://github.com/mongodb/mongo-java-driver/downloads

《10天掌握MongoDB》2012翻新完整版.pdf" http://vdisk.weibo.com/s/7-tgW

"MongoDB The Definitive Guide.pdf" http://vdisk.weibo.com/s/7AF7f

其他资料:

http://blog.nosqlfan.com/tags/mongodb
http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html

深入了解mongodb,源码解析:http://www.cnblogs.com/daizhj/category/260889.html

//附:java基本操作

package org.senma.test.mongo;

/**
* Copyright (C) 2008 10gen Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import com.mongodb.Mongo;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.DB;

import java.util.Set;
import java.util.List;

public class QuickTour {

public static void main(String[] args) throws Exception {

// connect to the local database server
Mongo m = new Mongo();

// get handle to "mydb"
DB db = m.getDB( "mydb" );

// Authenticate - optional
// boolean auth = db.authenticate("foo", "bar");


// get a list of the collections in this database and print them out
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}

// get a collection object to work with
DBCollection coll = db.getCollection("testCollection");

// drop all the data in it
coll.drop();


// make a document and insert it
BasicDBObject doc = new BasicDBObject();

doc.put("name", "MongoDB");
doc.put("type", "database");
doc.put("count", 1);

BasicDBObject info = new BasicDBObject();

info.put("x", 203);
info.put("y", 102);

doc.put("info", info);

coll.insert(doc);

// get it (since it's the only one in there since we dropped the rest earlier on)
DBObject myDoc = coll.findOne();
System.out.println(myDoc);

// now, lets add lots of little documents to the collection so we can explore queries and cursors
for (int i=0; i < 100; i++) {
coll.insert(new BasicDBObject().append("i", i));
}
System.out.println("total # of documents after inserting 100 small ones (should be 101) " + coll.getCount());

// lets get all the documents in the collection and print them out
DBCursor cur = coll.find();
while(cur.hasNext()) {
System.out.println(cur.next());
}

// now use a query to get 1 document out
BasicDBObject query = new BasicDBObject();
query.put("i", 71);
cur = coll.find(query);

while(cur.hasNext()) {
System.out.println(cur.next());
}

// now use a range query to get a larger subset
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 50)); // i.e. find all where i > 50
cur = coll.find(query);

while(cur.hasNext()) {
System.out.println(cur.next());
}

// range query with multiple contstraings
query = new BasicDBObject();
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); // i.e. 20 < i <= 30
cur = coll.find(query);

while(cur.hasNext()) {
System.out.println(cur.next());
}

// create an index on the "i" field
coll.createIndex(new BasicDBObject("i", 1)); // create index on "i", ascending


// list the indexes on the collection
List<DBObject> list = coll.getIndexInfo();
for (DBObject o : list) {
System.out.println(o);
}

// See if the last operation had an error
System.out.println("Last error : " + db.getLastError());

// see if any previous operation had an error
System.out.println("Previous error : " + db.getPreviousError());

// force an error
db.forceError();

// See if the last operation had an error
System.out.println("Last error : " + db.getLastError());

db.resetError();
}
}