mongodb-重温(1)

前言

一次面试,面试官问我有没用过mongodb,我居然说了没,我当明思维流程是这样的, 虽然我看过mongodb这本书,也做过一些实验,但没用在产品开发上,所以我回答没有了, 由此可见,我的第一反应是要求我,真正用过,才放在脑上,可以看出,我是通过实践才能掌握知识的人。 好吧!就先说这么多!

MongoDB

启动

正常情况这样运行 $ mongod …….. MongoDB starting : pid=3725 port=27017 dbpath=/data/db/ 32-bit host=lsl-pc ……..

得来基本信息 进程号,端口号, 数据库地址 另外 还启动了一个基本的http服务

如何忘记这个mongod mon go d 男人都变成狗了

失败原因

常见端口号被占用, 数据库目录不存在等等

注意 32位的mongod 文件最大是2G左右! 32 bit builds are limited to less than 2GB of data

MongoDB shell

默认变量db 这就好像scrapy shell 之后有response变量一样 这个shell是javascript shell(也就是解释器),可以运行一些javascript语句,令外可以使用help得到相应的帮助!


> print(1+1)
2
> "hello world!"
hello world!

数据类型

可以用json的差不多! 在此之还有正则,正则就像perl的正则差不多,时间类型:Date()


> b = {"x": Date()}
{ "x" : "Wed Mar 09 2016 15:22:34 GMT+0800 (CST)" }


插入,更新,删除

假设文章结构为标题,内容,时间!

{ “title”: “”, “content”: “”, “date”: “”, “author”: “”, }


> db.blog.insert({"title":1,"content":2,"date": Date(), "author":"lsl"}) //插入
> db.blog.find() // 打印一些
{ "_id" : ObjectId("56dfd4923be423e75b8ab0c9"), "title" : 1, "content" : 2, "date" : "Wed Mar 09 2016 15:45:22 GMT+0800 (CST)", "author" : "lsl" }

> db.blog.find({"author":"lsl"}) //查找多个
{ "_id" : ObjectId("56dfd4923be423e75b8ab0c9"), "title" : 1, "content" : 2, "date" : "Wed Mar 09 2016 15:45:22 GMT+0800 (CST)", "author" : "lsl" }

> db.blog.findOne({"author":"lsl"})

{
    "_id" : ObjectId("56dfd4923be423e75b8ab0c9"),
    "title" : 1,
    "content" : 2,
    "date" : "Wed Mar 09 2016 15:45:22 GMT+0800 (CST)",
    "author" : "lsl"
}


> db.blog.update({"author":"lsl"}, {"author":"zz"}) //注意这里似乎是作替换,但实际上是换成了{"author": "zz"},这里应该使用$set

> db.blog.update({"author":"lsl"}, {"$set":{"author":"zz"}})

> db.blog.find()
{ "_id" : ObjectId("56dfd7f13be423e75b8ab0cb"), "author" : "zz", "content" : 2, "date" : "Wed Mar 09 2016 15:59:45 GMT+0800 (CST)", "title" : 1 }

> db.blog.update({}, {"$unset":{"author":"zz"}})

> db.blog.find()
{ "_id" : ObjectId("56dfd7f13be423e75b8ab0cb"), "content" : 2, "date" : "Wed Mar 09 2016 15:59:45 GMT+0800 (CST)", "title" : 1 }


> blog = db.blog.findOne()
{
    "_id" : ObjectId("56dfd7f13be423e75b8ab0cb"),
    "content" : 2,
    "date" : "Wed Mar 09 2016 15:59:45 GMT+0800 (CST)",
    "title" : 1
}
> db.blog.update({"author":"zz"},blog,true)
E11000 duplicate key error index: test.blog.$_id_
dup key: { : ObjectId('56dfd7f13be423e75b8ab0cb') }

//这个说明_id不能重复

> db.blog.remove({"author": "lsl"})
> db.blog.drop() //删除全部


总结 查询,删除, 最基本条件是{“键”:”值”} 复杂条件就可以比作为函数表达式 {“X”, {“健”:”值”} {“$set”:{“author”:”zz”}} {“$unset”; {“author”:”xx”}} {“$and”: {“man”: “lsl”}}

(+ 1 2 )

Loading Disqus comments...
Table of Contents