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

推荐订阅源

G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Y
Y Combinator Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
D
Docker
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
B
Blog
Vercel News
Vercel News
Recent Announcements
Recent Announcements
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
宝玉的分享
宝玉的分享

博客园 - 马森

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();
}
}