#mongodb#速成笔记

操作记录与总结:

show dbs

use SOME_DB(既是选定某个DB,又可以创建一个新的DB【注意要写入数据,新的SOME_DB不可为空】)

show collections

$inc

> db.simple.find()
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 12 }
{ "_id" : ObjectId("54e9dc37a4c00ba20f4432ae"), "name" : "bcd", "age" : 13 }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }
> db.simple.update({"name":"abc"},{$inc:{"sex":"none"}})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 14,
"errmsg" : "Cannot increment with non-numeric argument: {sex: \"none\"}"
}
})
> db.simple.update({"name":"abc"},{$inc:{"age":50}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.simple.find()
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 62 }
{ "_id" : ObjectId("54e9dc37a4c00ba20f4432ae"), "name" : "bcd", "age" : 13 }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }

总结:$inc后只能跟数字,用于数值的递增

$set

> db.simple.update({"name":"abc"},{$set:{"sex":"none"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.simple.find()
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 62, "sex" : "none" }
{ "_id" : ObjectId("54e9dc37a4c00ba20f4432ae"), "name" : "bcd", "age" : 13 }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }
>

总结:$set后可以为字符串之类的东西

$in,$or,$nin

> db.simple.find({"wife":{$in:["jc"]}})
{ "_id" : ObjectId("54ec289e560c1ea13477ce89"), "name" : "xul", "wife" : [ "jc", "juhua" ] }
{ "_id" : ObjectId("54ec28b8560c1ea13477ce8a"), "name" : "jack", "wife" : [ "jc", "huangrui" ] }
> db.simple.find({"wife":{$nin:["jc"]}})
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 62, "sex" : "none" }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }
{ "_id" : ObjectId("54ec259d560c1ea13477ce85"), "name" : "def", "age" : 14 }
{ "_id" : ObjectId("54ec25ac560c1ea13477ce86"), "name" : "abc", "age" : 16 }
> db.simple.find({"wife":{$in:["huangrui"]}})
{ "_id" : ObjectId("54ec28b8560c1ea13477ce8a"), "name" : "jack", "wife" : [ "jc", "huangrui" ] }
> db.simple.find({"wife":{$in:["juhua"]}})
{ "_id" : ObjectId("54ec289e560c1ea13477ce89"), "name" : "xul", "wife" : [ "jc", "juhua" ] }
> db.simple.find({$or:[{"age":14},{"age":16}]})
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54ec259d560c1ea13477ce85"), "name" : "def", "age" : 14 }
{ "_id" : ObjectId("54ec25ac560c1ea13477ce86"), "name" : "abc", "age" : 16 }
> 
> 

> db.simple.find({"wife":{$nin:["jc"]}})
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 62, "sex" : "none" }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }
{ "_id" : ObjectId("54ec259d560c1ea13477ce85"), "name" : "def", "age" : 14 }
{ "_id" : ObjectId("54ec25ac560c1ea13477ce86"), "name" : "abc", "age" : 16 }
{ "_id" : ObjectId("54ec38ab560c1ea13477ce8b"), "name" : "jc", "hus" : [ "shit" ] }
{ "_id" : ObjectId("54ec38be560c1ea13477ce8c"), "name" : "juhua", "wife" : [ "shit" ] }
>

不要在意那些奇葩的数据!

总结:没什么好说的,就是没有$not

count:

> db.simple.count({"age":14})
2
> db.simple.count({"age":16})
2

distinct:去重

> db.simple.find()
{ "_id" : ObjectId("54e9dc1fa4c00ba20f4432ad"), "name" : "abc", "age" : 62, "sex" : "none" }
{ "_id" : ObjectId("54e9dc52a4c00ba20f4432af"), "name" : "cde", "age" : 14 }
{ "_id" : ObjectId("54e9dc64a4c00ba20f4432b0"), "name" : "def", "age" : 16 }
{ "_id" : ObjectId("54e9dc75a4c00ba20f4432b1"), "name" : "def", "age" : 656 }
{ "_id" : ObjectId("54ec259d560c1ea13477ce85"), "name" : "def", "age" : 14 }
{ "_id" : ObjectId("54ec25ac560c1ea13477ce86"), "name" : "abc", "age" : 16 }
{ "_id" : ObjectId("54ec289e560c1ea13477ce89"), "name" : "xul", "wife" : [ "jc", "juhua" ] }
{ "_id" : ObjectId("54ec28b8560c1ea13477ce8a"), "name" : "jack", "wife" : [ "jc", "huangrui" ] }
> db.simple.disinct("age)
2015-02-24T16:14:03.415+0800 SyntaxError: Unexpected token ILLEGAL
> db.simple.disinct("age")
2015-02-24T16:14:05.554+0800 TypeError: Property ‘disinct‘ of object name.simple is not a function
> db.simple.distinct("age")
[ 62, 14, 16, 656 ]
> db.simple.distinct("name")
[ "abc", "cde", "def", "xul", "jack" ]
>

另一篇参考:

常用命令:http://www.cnblogs.com/cxd4321/archive/2011/06/24/2089051.html

时间: 2024-10-16 14:27:43

#mongodb#速成笔记的相关文章

MongoDB学习笔记系列

回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

MongoDB学习笔记(一:安装时出现The default storage engine 'wiredTiger' is not available问题解决)

今晚在自己老式笔记本来试了一下MongoDB的安装,由于配置比较低,只能选择32位版本的MongoDB进行安装,在安装过程中碰到了上述标题所示错误,自己也捣鼓了一个小时左右,终于在一篇博客中找到答案,具体原文链接如下:http://blog.csdn.net/u013457382/article/details/50775268 MongoDB学习笔记(一:安装时出现The default storage engine 'wiredTiger' is not available问题解决)

Mongodb学习笔记

总结下这几天Mongodb学习笔记 /** * 获取MongoClient * @author xuyw * @email [email protected] * @param host * @param port * @return */ public static MongoClient getMongoClient(String host, int... port) { MongoClient mongoClient = null; int portlen = 0; try { if (p

[Spring Data MongoDB]学习笔记--建立数据库的连接

1. 有了上一篇的Mongo后,连接数据库我们还需要更多的信息,比如数据库名字,用户名和密码等. 我们可以继续来配置MongoDbFactory的实例. public interface MongoDbFactory { DB getDb() throws DataAccessException; DB getDb(String dbName) throws DataAccessException; } 然后我们可以继续用MongoDbFactory来创建MongoTemplate的实例. pu

mongodb学习笔记系列一

一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,--smallfiles 二.基本命令 1.登录mongodb client /use/local/mongo 2.查看当前数据库 show databases; show dbs; 两个可能 3.admin是和管理有关的库,local 是放schema有关

[Spring Data MongoDB]学习笔记--牛逼的MongoTemplate

MongoTemplate是数据库和代码之间的接口,对数据库的操作都在它里面. 注:MongoTemplate是线程安全的. MongoTemplate实现了interface MongoOperations,一般推荐使用MongoOperations来进行相关的操作. MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new Mongo(), "database")); MongoDB docu

[Spring Data MongoDB]学习笔记--注册一个Mongo实例

1. 通过Java based bean metadata @Configuration public class AppConfig { public @Bean Mongo mongo() throws UnknownHostExceptioin { return new Mongo("localhost"); } } 上面的方式包含异常处理,这并不是我们想要的. 所以,应该尽量用下面这种方式MongoFactoryBean,或者后面的xml方式. @Configuration p

MongoDB 学习笔记(二) 之查询

最简单的查询 个人认为mongoDB是面向对象的吧. 例如最简单的查询  整个数据集只有三条数据 第一查询姓名为张三的  数据 查询的条件比较好写 随意   db.collection.find(查询条件)   例如 15 得到的结果是这样 如果你不想返回某个字段呢 ,你可以自己定义返回的字段值 语法这样 db.collection.find({查询条件},{返回字段}) 16 我们看到每次查询 "_id" 这个字段 都返回  我们可以将它设置为0 这样的话就不会返回 如 查询条件里的