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 ...
随机推荐
- DB Query Analyzer 5.02 is distributed, 53 articles concerned have been published
DB Query Analyzer is presented by Master Gen feng, Ma from Chinese Mainland. It has English version ...
- PyCharm命令行输入
PyCharm命令行输入 写作原因 网上资料比较杂,版本较老,与现在的版本有区别,所以根据网上资料和自己亲手实验撰写此文. 设置方法 在菜单中按此路径设置: Run->Edit Configur ...
- C++笔记十七:C语言中 “冒牌货”const和const符号表
在.c文件中有程序: int main() { int const a = 10; a=20; printf("a=%d\n",a); return 0; } 编译就知道C语言 ...
- java并发包分析之———Atomic类型
一.何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位.计算机中的Atomic是指不能分割成若干部分的意思.如果一段代码被认为是Atomic,则表示这段代码在执行过 ...
- .net开发微信(1)——微信订阅号的配置
到微信公众平台按提示一直走下去后,可能遇到的难点就是填写Url和Token了. 开发文档里说,url是自己的服务器地址,Token随便写.但是一直提示Token验证失败. 解决办法:需要在服务器里新增 ...
- JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)
JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...
- Day13 CSS的与应用
老师博客:http://www.cnblogs.com/yuanchenqi/articles/6856399.html 1,CSS选择器的应用: CSS规则有两个主要部分构成:选择器,以及一条或多条 ...
- Nginx接收的host值会影响alias的规则匹配
一般内网接收的HTTP请求都是内网唯一的网关传过来的,nginx的alias匹配会直接使用网关穿过的host值,而不是从URL解析出来的,从而导致的问题是,容器的alias相关Server_name规 ...
- GNSS相关网站汇总
转载: https://blog.csdn.net/zzh_my/article/details/78449972 一.bernese 数据表文件下载 ftp://nfs.kasi.re.kr rin ...
- Roundcube Webmail File Disclosure Vulnerability(CVE-2017-16651)
Preface Software: https://roundcube.net/ Versions: 1.1.0 - 1.1.9, 1.2.0 - 1.2.6, 1.3.0 - 1.3.2 CVE: ...