标签:query 信息 ica tab ace ring 投影 options 语法
创建数据库:
use DATABASE_NAME
查看所有数据库:
show dbs
删除数据库:
db.dropDatabase()
删除集合:
db.collection.drop()
创建集合:
db.createCollection(name, options)
参数说明:
name:要创建的几个名称
options:可选参数,制定有关内存大小几索引的选项
options的参数如下:
| capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。  | 
| autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 | 
| size | 数值 | (可选)为固定集合指定一个最大值,以千字节计(KB)。 如果 capped 为 true,也需要指定该字段。  | 
| max | 数值 | (可选)指定固定集合中包含文档的最大数量 | 
下面是带有几个关键参数的 createCollection() 的用法:
创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )
{ "ok" : 1 }
>
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
> db.mycol2.insert({"name" : "mongodb教程"})
> show collections
mycol2
...
插入文档:
db.COLLECTION_NAME.insert(document)或db.COLLECTION_NAME.save(document)
新版本新增了db.collection.insertOne() 和db.collection.inertMany()
db.collection.insertOne( <document>, { writeConcern: <document> } )
db.collection.insertMany( [ <document 1> , <document 2>, ... ], { writeConcern: <document>, ordered: <boolean> } )
参数说明:
更新文档:
update()方法用于更新已存在的文档。
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
参数说明:
>db.col.insert({ title: ‘MongoDB 教程‘, description: ‘MongoDB 是一个 Nosql 数据库‘, by: ‘wch教程‘, url: ‘http://www.runoob.com‘, tags: [‘mongodb‘, ‘database‘, ‘NoSQL‘], likes: 100 })
update() 方法来更新标题(title):
>db.col.update({‘title‘:‘MongoDB 教程‘},{$set:{‘title‘:‘MongoDB‘}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 输出信息
> db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "wch教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
修改多条相同的文档,则需要设置 multi 参数为 true
>db.col.update({‘title‘:‘MongoDB 教程‘},{$set:{‘title‘:‘MongoDB‘}},{multi:true})
sace()方法
save()方法通过传入的文档来提花已有文档,_id逐渐存在就更新,不存在就插入
db.collection.save( <document>, { writeConcern: <document> } )
参数说明:
>db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "wch",
    "url" : "http://www.runoob.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})
>db.col.find().pretty()
{
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "wch",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "NoSQL"
        ],
        "likes" : 110
}
只更新第一条记录:
全部更新:
只添加第一条:
全部添加进去:
全部更新:
只更新第一条记录:
remove() 方法的基本语法格式如下所示:
db.collection.remove(
   <query>,
   <justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
参数说明:
MongoDB 查询数据的语法格式如下:
db.collection.find(query, projection)
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
pretty() 方法以格式化的方式来显示所有文档。
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:
| 操作 | 格式 | 范例 | RDBMS中的类似语句 | 
|---|---|---|---|
| 等于 | {<key>:<value>} | 
db.col.find({"by":"wch"}).pretty() | 
where by = ‘wch‘ | 
| 小于 | {<key>:{$lt:<value>}} | 
db.col.find({"likes":{$lt:50}}).pretty() | 
where likes < 50 | 
| 小于或等于 | {<key>:{$lte:<value>}} | 
db.col.find({"likes":{$lte:50}}).pretty() | 
where likes <= 50 | 
| 大于 | {<key>:{$gt:<value>}} | 
db.col.find({"likes":{$gt:50}}).pretty() | 
where likes > 50 | 
| 大于或等于 | {<key>:{$gte:<value>}} | 
db.col.find({"likes":{$gte:50}}).pretty() | 
where likes >= 50 | 
| 不等于 | {<key>:{$ne:<value>}} | 
db.col.find({"likes":{$ne:50}}).pretty() | 
where likes != 50 | 
MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
语法格式如下:
>db.col.find({key1:value1, key2:value2}).pretty()
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:
>db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()
条件操作符用于比较两个表达式并从mongoDB集合中获取数据。
在本章节中,我们将讨论如何在MongoDB中使用条件操作符。
MongoDB中条件操作符有:
db.col.find({likes : {$gt : 100}})
db.col.find({likes : {$gte : 100}})
db.col.find({likes : {$lt : 150}})
db.col.find({likes : {$lte : 150}})
db.col.find({likes : {$lt :200, $gt : 100}})
| 类型 | 数字 | 备注 | 
|---|---|---|
| Double | 1 | |
| String | 2 | |
| Object | 3 | |
| Array | 4 | |
| Binary data | 5 | |
| Undefined | 6 | 已废弃。 | 
| Object id | 7 | |
| Boolean | 8 | |
| Date | 9 | |
| Null | 10 | |
| Regular Expression | 11 | |
| JavaScript | 13 | |
| Symbol | 14 | |
| JavaScript (with scope) | 15 | |
| 32-bit integer | 16 | |
| Timestamp | 17 | |
| 64-bit integer | 18 | |
| Min key | 255 | Query with -1. | 
| Max key | 127 | 
db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : ‘string‘}})
>db.COLLECTION_NAME.find().limit(NUMBER)
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
标签:query 信息 ica tab ace ring 投影 options 语法
原文地址:https://www.cnblogs.com/superSmall/p/13095888.html