1.MongoDB是一种NoSql数据库,不支持sql语言,没有表结构,放弃了对事物的支持,不能进行多表查询。性能更好。
2.无数据结构的限制 1.无表结构的概念,每条结构可以有完全不同的结构 2.业务开发快捷方便
3.完全的索引支持: 1.Redis的key-value 2.hbase的单索引,二级索引需自己实现
这里 mycol 是集合的名称,如前面的教程中创建。如果集合在数据库中不存在,那么MongoDB 将创建此集合,然后把它插入文档。
插入文档中,如果我们不指定_id参数,然后MongoDB 本文档分配一个独特的ObjectId。
_id 是12个字节的十六进制数,唯一一个集合中的每个文档。 12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
插入单个查询的多个文档,可以传递一个数组 >db.post.insert([ { title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials yiibai', url: 'http://www.yiibai.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, { title: 'NoSQL Database', description: 'NoSQL database doesn't have tables', by: 'tutorials yiibai', url: 'http://www.yiibai.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 20, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2013,11,10,2,35), like: 0 } ] } ])
在 find() 方法,如果通过多个键分离’,’,那么 MongoDB 处理 AND 条件。AND 基本语法如下所示
>db.mycol.find({key1:value1, key2:value2}).pretty()
如:db.post.find({"by":"tutorials yiibai","title": "MongoDB Overview"}).pretty()
语法:db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
db.mycol.update({‘title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}})
MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置’multi’ 为true
db.mycol.update({‘title’:’MongoDB Overview’},{$set:{‘title’:’New MongoDB Tutorial’}},{multi:true})
MongoDB 的find()方法,在 MongoDB查询 文档解释接受第二个可选参数是要检索的字段列表。在MongoDB中,当执行find()方法,那么它会显示一个文档所有字段。要限制这一点,需要设置的字段列表值1或0。 1用来显示字段而0是用来隐藏字段。
find()方法具有投影基本语法如下
>db.COLLECTION_NAME.find({},{KEY:1}) >db.post.find({},{"title":1,_id:0})
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER) # skip 默认是0 db.post.find({},{"title":1,_id:0}).limit(1).skip(2) 跳过前两条,查寻一条结果
转载于:https://www.cnblogs.com/wwha/articles/5978101.html