Mongodb---操作备忘
mysql/mongodb对比
|
CREATE TABLE USERS (a Number, b Number)
|
|
|
INSERT INTO USERS VALUES(1,1)
|
$db->users->insert(array("a" => 1, "b" => 1));
|
|
SELECT a,b FROM users
|
$db->users->find(array(), array("a" => 1, "b" => 1));
|
|
SELECT * FROM users WHERE age=33
|
$db->users->find(array("age" => 33));
|
|
SELECT a,b FROM users WHERE age=33
|
$db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
|
|
SELECT a,b FROM users WHERE age=33
|
$db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
|
|
SELECT a,b FROM users WHERE age=33 ORDER BY name
|
$db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
|
|
SELECT * FROM users WHERE age>33
|
$db->users->find(array("age" => array('$gt' => 33)));
|
|
SELECT * FROM users WHERE age<33
|
$db->users->find(array("age" => array('$lt' => 33)));
|
|
SELECT * FROM users WHERE name LIKE "%Joe%"
|
$db->users->find(array("name" => new MongoRegex("/Joe/")));
|
|
SELECT * FROM users WHERE name LIKE "Joe%"
|
$db->users->find(array("name" => new MongoRegex("/^Joe/")));
|
|
SELECT * FROM users WHERE age>33 AND age<=40
|
$db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
|
|
SELECT * FROM users ORDER BY name DESC
|
$db->users->find()->sort(array("name" => -1));
|
|
CREATE INDEX myindexname ON users(name)
|
$db->users->ensureIndex(array("name" => 1));
|
|
CREATE INDEX myindexname ON users(name,ts DESC)
|
$db->users->ensureIndex(array("name" => 1, "ts" => -1));
|
|
SELECT * FROM users WHERE a=1 and b='q'
|
$db->users->find(array("a" => 1, "b" => "q"));
|
|
SELECT * FROM users LIMIT 10 SKIP 20
|
$db->users->find()->limit(10)->skip(20);
|
|
SELECT * FROM users WHERE a=1 or b=2
|
$db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
|
|
SELECT * FROM users LIMIT 1
|
$db->users->find()->limit(1);
|
|
EXPLAIN SELECT * FROM users WHERE z=3
|
$db->users->find(array("z" => 3))->explain()
|
|
SELECT DISTINCT last_name FROM users
|
$db->command(array("distinct" => "users", "key" => "last_name"));
|
|
SELECT COUNT(*y) FROM users
|
$db->users->count();
|
|
SELECT COUNT(*y) FROM users where AGE > 30
|
$db->users->find(array("age" => array('$gt' => 30)))->count();
|
|
SELECT COUNT(AGE) from users
|
$db->users->find(array("age" => array('$exists' => true)))->count();
|
|
UPDATE users SET a=1 WHERE b='q'
|
$db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
|
|
UPDATE users SET a=a+2 WHERE b='q'
|
$db->users->update(array("b" => "q"), array('$inc => array("a" => 2)));
|
|
DELETE FROM users WHERE z="abc"
|
$db->users->remove(array("z" => "abc"));
|
sc.exe create MongoDB30 binPath= "d:\mongodb30\bin\mongod.exe -auth --logpath D:\mongodb\log\MongoDB.log --logappend --dbpath d:\mongodb\data --service " DisplayName= "MongoDB30" start= "auto"
db.test.find({"name":"joe"})
//不区分大小写的查询
db.test.find({"name":{"$regex":"WILLIAM","$options":"i"}})
db.test.find({"name":"joe"}).limit(20)
db.test.find({"name":"joe"}).limit(20).skip(20)
//select * from test where name like '%william%' 不含有
- db.test.find({"name":/.*william.*/i})
- //不含有
- db.test.find({"name":{$not:/.*william.*/i}})
db.test.ensureIndex({"name":1})
db.test.update({},{$unset:{"email":""}},{multi:true})
db.test.getIndexes()
db.test.renameCollection("newtablename")
mongoexport -d dbname -c tablename -u test -p -o "c:/db.json"
mongoexport -d dbname -c tablename -u test -p test -f "fieldname" -csv -o "c:/db.csv"
mongoimport -d test -c news -u test -p password "c:/db.json"
db.test.find({"name":"joe","atta.b":{$exists:true}}).count()
db.test.find({"name":"joe","atta.b":"bbb"}
db.test.update({"name":"william"},{"$pull":{"email":"aa@qq.com"}})
db.test.update({"sn" : "1","stock.fnfp.pn":"aa"} , {$push : { "stock.$.fnfp": {"price":"555"}}})
db.test.update({"name":"joe"},{$push:{"atta":{"d":"ddd"}}})
db.test.update({"name":"joe"},{$set:{"email":"a.163.com"}})
db.test.find({name: {$type: 2}})
db.test.find({age: {$type: 16}})
db.users.find({name: /^b.*/i})
db.users.find({age: {$gt: 18}})
db.users.find({$where: "this.age > 18"})
db.users.find("this.age > 18")
f = function() {return this.age > 18} db.users.find(f)
db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)})
结果
db.news.find().forEach(function(x){db.news_bak.insert(x)})
db.currentOp()
db.killOp(opid)
db.serverStatus()
db.stats()
db.collection.stats()
db.collection.dataSize()
db.collection.totalIndexSize()
db.changeUserPassword("reporting", "SOh3TbYhxuLiW8ypJPxmt1oOfL")
{
"name":"joe"
"email":
[
"aaa@163.com",
{"qqemail": "aa@qq.com"}
]
}
db.test.update({"name":"joe"},{$pull:{"email":"aaa@163.com"}})
或者:
db.test.update({"name":"joe"},{$pull:{"email":{"qqemail":"aa@qq.com"}}})
upsert
db.post.update({count:100},{"$inc":{count:10}},true)
在找不到count=100这条记录的时候,自动插入一条count=100,然后再加10,最后得到一条 count=110的记录
mongodump -h 127.0.0.1 -d dbname -u username -p -o d:/dbname.bak
mongorestore -h 127.0.0.1 -d dbname -u username -p password dbname.bak/dbname
db.test.find()
{
"_id":ObjectId("52428f5d5ab08c5e801f7209"),
"price":[
{"digk":{"nt1":1,"nt2":2}},
{"avn":{"nt1":22,"nt2":23}}
],
"sn":1
}
db.test.update({"sn":1},{$pop:{"price":0}})
移除price数组下的第0项
db.test.update({"sn":1},{$pull:{"price":{"avn":{"nt1":22,"nt2":23}}}})
缺陷必须知道price中的avn的
var cursor=db.test.find();
while(cursor.hasNext()){
var y=cursor.next();
for(var i=0;i<y.price.length;i++){
delete y.price[i].avn;
}
db.test.save(y);
}
var cursor=db.test.find();
var i = 1;
while(cursor.hasNext()){
var y=cursor.next();
var _id = y._id;
db.test.update({"_id":_id},{$set:{"sn":i}});
i++;
}
db.test.save({"sn":1,
"contact":
{
"China":[
{"city":"beijing","email":"a@163.com","tel":"010-6666"},
{"city":"shanghai","email":"b@263.com","tel":"021-8888"},
{"city":"shenzhen","email":"c@sohu.com","tel":"0755-9999"}
],
"United-States":[
{"city":"Newyork","email":"a@163.com","tel":"010-6666"},
{"city":"Washington","email":"a@163.com","tel":"010-6666"}
]
}
})
db.test.save({"sn":2,
"contact":
{
"Japan":[
{"city":"tokyo","email":"a@163.com","tel":"010-6666"},
{"city":"Osaka","email":"b@263.com","tel":"021-8888"},
{"city":"Hokkaido","email":"c@sohu.com","tel":"0755-9999"}
],
"Canada":[
{"city":"Vancouver","email":"a@163.com","tel":"010-6666"},
{"city":"Ottawa","email":"a@163.com","tel":"010-6666"}
]
}
})
var cursor = db.test.find({"sn":1});
while(cursor.hasNext()){
var y = cursor.next();
for(var i =0;i < y.contact.China.length;i++){
if(y.contact.China[i].city == 'shenzhen'){
delete y.contact.China[i];
}
}
db.test.save(y);
}

db.test.update({"sn":1,"contact.China.city":"beijing"},{$set:{"contact.China.$.city":"guangzhou"}})
db.usersinfo.renameCollection("users")
use admin
db.createRole({role:'sysadmin',roles:[],privileges:[{resource:{anyResource:true},actions:'anyAction']}]})
use test
db.grantRolesToUser("test",[{role:'sysadmin',db:'admin'}])
key:[{'id':123,'value':11},{'id':124,'value':12}]
查询匹配key里id与value皆匹配:find({'key':{$elemMatch:{"id":123,"value":12}}})可以做到返回不出结果。
Mongodb---操作备忘的更多相关文章
- Axure常用操作备忘
目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...
- mongo日常操作备忘
修改 普通修改 插入数据: db.students.insert({ "name":"swrd", "age":32, "grad ...
- DOS命令批量重命名文件配合Excel 操作备忘
批量取得文件夹下文件名 有时候文件夹下有好多图片什么的,文件名称不是统一的格式,想统一一下,于是google找到以下方法,进入要操作的目录,按住shift键的同时,单击鼠标右键,你会看到在此处打开命令 ...
- JavaScript 数组操作备忘
数组的定义: 方法1. var mycars=new Array()mycars[0]="Saab"mycars[1]="Volvo"mycars[2]=&qu ...
- docker常用操作备忘
一.docker安装 参考资料:阿里云镜像加速1. 安装/升级Docker客户端 curl -fsSL https://get.docker.com | bash -s docker --mirror ...
- MongoDB 基本命令备忘
使用admin数据库: use admin 显示数据库: show dbs 创建用户,并制定该用户的角色: db.createUser({user: "root",pwd:&quo ...
- mongo操作备忘
#查看collection内 某个字段条目数 db.dictionary_system.find({"name":"xxx"}).count() #清空某个co ...
- QT常规控件操作备忘
QLabel设置边框和颜色: label->setFrameShape (QFrame::Box); label->setStyleSheet("border: 1px soli ...
- eclipse如何修改dynamic web module version;——eclipse操作备忘
1.eclipse如何修改dynamic web module version 一.修改工程属性: 右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic We ...
- iscsi 操作备忘
#查找iscsi节点 iscsiadm -m discovery -t st -p 192.168.20.225 #列出可用节点 iscsiadm -m node -T iqn.com.exapmle ...
随机推荐
- C++开发基础
硬件配置: 586以上PC兼容机或品牌机,配有彩色显示器.鼠标.键盘,内存不小于20MB,硬 盘自由空间不少于60MB.推荐配置为内存32MB或64MB(或以上),硬盘自由空间500MB 以上. 软件 ...
- Leetcode_257_Binary Tree Paths
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/49432057 Given a binary tree, r ...
- How tomcat works 读书笔记十三 Host和Engine
Host Host是Context的父容器.如果想在一个tomcat上部署多个context就需要使用Host了.上下文容器的父容器是主机,但是可能有一些其它实现,没有必要的时候也可以忽略.不过在实践 ...
- Android Binder IPC详解-Android学习之旅(96)
linux内存空间与BInder Driver Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是 ...
- LeetCode(38)-Valid Sudoku
题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- db2字段修改
db2表字段修改 1:删除字段非空属性alter table XXX alter column XXX drop not null 2:添加字段非空属性alter table XXX alter co ...
- iOS中用UILabel实现UITextView的占位文字
@interface BSPublishTextView : UITextView /** 对外属性占位字符 placeholder */ @property (nonatomic, copy) NS ...
- ExtJS中xtype 概览
基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...
- 开源一个IE下获取XPath小工具,支持32/64位
背景是曾经友情支持了测试组一小段时间,发现他们使用selenium做页面的自动化测试,需要用到XPath,但IE下没有获取XPath的工具,只能在Firefox和chrome下获取,步骤还比较麻烦.而 ...
- SQL 逻辑优化 case when 转为 union all
通常数据库的优化从硬件层面去考虑可分为4个方面: CPU:即降低计算复杂度,如减少sql各类聚合函数,窗口函数,case when等. IO :(较少查询结果集过程中对数据的访问量.数据优化很大程度从 ...