zoukankan      html  css  js  c++  java
  • mongodb 学习笔记

    好久没用过 mongodb了,也差不多忘记一干二净,,复习一下

    官方文档:

    http://www.mongodb.org/display/DOCS/Overview+-+The+MongoDB+Interactive+Shell

    blog:

    http://tech.it168.com/a2011/0617/1206/000001206231_all.shtml

    mongod --install
    
    mongod --dbpath e:\mongodb\data\db
    mongod --port 10001 --dbpath D:/mongodb/data/db #指定port
    http://localhost:10001/
    
    注意:window 路径 / 与linux \ 的问题,还有必须要有目录,不然会出错
    //客户端连接 mongo 127.0.0.1:10011 //新建用户 db.test.addUser(name,passwd,onready); db.test.removeUser(name); // var data={name:'solq',age:24}; db.test.insert(data); // db.test.find(); db.test.findOne(); var nosql={name:'solq'}; db.test.findOne(nosql); //删除 db.test.remove(); // var nosql={name:'solq'}; var rel=db.test.findOne(nosql); rel.name="ming"; db.test.update(noslq,rel); //替换 var nosql={name:'solq'}; db.test.update(noslq,{xxx:'solq'}); //这里是 查出数据,然后替换掉 //统计 db.test.find().count(); //修改器 //自增 $inc var nosql={name:'solq'}; db.test.update(nosql,{'$inc':{age:1}}); //age +1 //插入字段 $set var nosql={name:'solq'}; db.test.update(nosql,{'$set':{age:1}}); //可以理解 添加字段 没有的内容就插入 有就复盖 //也可以修改内嵌 //删除字段 $unset var nosql={name:'solq'}; db.test.update(nosql,{'$unset':{age:1}}); //数组修改器 //插入数组 $push var nosql={name:'solq'}; db.test.update(nosql,{$push:{mail:'solq@qq.com'}}); db.test.update(nosql,{$push:{mail:'solq@qq.com'}}); //插入两个 //$addToSet 插入唯一 var nosql={name:'solq'}; db.test.update(nosql,{$addToSet:{mail:'solq@qq.com'}}); db.test.update(nosql,{$addToSet:{mail:'solq@qq.com'}}); //插入一个 //排除 $ne var nosql={name:{$ne:'solq'}}; //排除 name=='solq' db.test.update(nosql,{$addToSet:{mail:'solq@qq.com'}}); //循环 $each var nosql={name:'solq'}; db.test.update(nosql,{$addToSet:{'emails':{$each:['solq1@qq.com','solq2@qq.com','solq3@qq.com']}}}); //学到这里,我已经感觉不再需要关联多个表了,直接在原来记录扩展就行了 //弹出数组 $pop var nosql={name:'solq'}; db.test.update(nosql,{$pop:{key:index}}); //数组定位修改 //MSON 结构 data={ name:'solq', age:24, email:'so_lq@126.com', qq:360174425, web:[ { 'webName':'xxx', 'url':'http:///xxx' }, { 'webName':'xxx2', 'url':'http:///xxx2' } ] }; db.test.insert({name:'solq',web:[{webName:'xxx1','url':'xxx1'},{webName:'xxx2','url':'xxx2'}]}); var nosql={'web.webName':'xxx'}; //不是很理解 web.webName 可以直接跳过下标 db.test.update(nosql,{$set:{'web.0.webName':'xxx3'}}); // 定位 匹配的条件 db.test.update(nosql,{$set:{'web.$.webName':'xxx3'}}); //进阶吧 //一次 查询 → (有 更新)/ (没有 自增插入) db.test1.update({age:15},{$inc:{age:5},true}); //一次 查询 → (有 更新)/ (没有 插入) //先把数据 取出来,有唯一ID,修改结构后再保存 注意,如果数组结构没有id的话,相当于 insert一样,插入 var data=db.test1.findOne(); data.name='xxx'; db.test1.save(data); // 或者 db.test1.update({'_id':data._id},data); //更新多个文档 update 第四个参数 为 true var nosql={name:'solq'}; db.test.update(nosql,{$inc:{age:5},false,true}); //10-26 暂停 安全方面 //添加用户权限,登陆认证 use admin; db.addUser('root','solq',false); //true 时为只读 db.system.users.find(); //查找新建用户 //mongodb 启动 登陆认证 mongod --dbpath /db –auth 客户端连上后 db.auth('root','solq'); //返回一就成功
  • 相关阅读:
    类型构造器
    WIN32画图窗口
    WIN32创建进程CreateProcess
    WIN通过消息实现互斥同步CreateEvent和SetEvent
    WIN32生产消费经典同步但是以消耗时间为代价
    WIN32互斥体CreateMutex以及限制多开
    WIN32临界区线程锁EnterCriticalSection和LeaveCriticalSection
    GetThreadContext和SetThreadContext
    远程线程注入
    EnumProcessModules 使用 获取进程的路径
  • 原文地址:https://www.cnblogs.com/solq/p/2501282.html
Copyright © 2011-2022 走看看