mongoDB基本使用(二),mongodb使用
数据库基本操作
连接到mongoDB服务器 ./bin/mongo 127.0.0.1:12345查看当前数据库 > show dbs admin (empty) local 0.078G
却换数据库(如果不存在会自动创建) > use jerome switched to db jerome
删除数据库 > db.dropDatabase() { "dropped" : "jerome", "ok" : 1 }
删除表
1 2 3 4 5 6 7 8 9 10 |
> > show tables
jerome_collection
jerome_coolection
system.indexes
> db.jerome_collection.drop()
true
> show tables #删除了当前表了
jerome_coolection
system.indexes
>
|
写入
(集合数据的写入,格式为JSON) > db.jerome_collection.insert({x:1}) WriteResult({ "nInserted" : 1 }) (插入成功)查询
> show dbs admin (empty) jerome 0.078GB local 0.078GB > show collections jerome_collection system.indexes > db.jerome_collection.find() { "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 } > db.jerome_collection.find({x:1}) #可以指定参数 { "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 }(_id是全局字段,在数据库中不会重复)
测试:再插入一条数据_id为1
1 2 3 4 5 6 7 8 9 10 11 |
> db.jerome_collection.insert({x:3,_id:1})
WriteResult({ "nInserted" : 1 })
> db.jerome_collection.insert({x:2,_id:1})
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: jerome.jerome_collection.$_id_ dup key: { : 1.0 }"
}
})
>
|
插入多条数据测试limit等
1 2 3 4 5 6 7 8 |
> for (i=3;i<100;i++)db.jerome_collection.insert({x:i})
#可以使用js语法
WriteResult({ "nInserted" : 1 })
> db.jerome_collection. find ().count()
#查找总条数
99
> db.jerome_collection. find ().skip(3).limit(2). sort ({x:1})
#跳过前三条,取两条,使用x排序
{ "_id" : ObjectId( "556ff5e8d7e60a53de941a74" ), "x" : 4 }
{ "_id" : ObjectId( "556ff5e8d7e60a53de941a75" ), "x" : 5 }
>
|
更新
Updata至少接收两个参数,一个查找的,一个更新的数据。1 2 3 4 5 6 7 8 |
> db.jerome_collection. find ({x:1})
{ "_id" : ObjectId( "556fd29a4e8b96c5ebc42e63" ), "x" : 1 }
> db.jerome_collection.update({x:1},{x:999})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.jerome_collection. find ({x:1})
#已经找不到了
> db.jerome_collection. find ({x:999})
{ "_id" : ObjectId( "556fd29a4e8b96c5ebc42e63" ), "x" : 999 }
>
|
1 2 3 4 5 6 7 |
> db.jerome_collection.insert({x:100,y:100,z:100})
WriteResult({ "nInserted" : 1 })
> db.jerome_collection.update({z:100},{$ set :{y:99}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.jerome_collection. find ({z:100})
{ "_id" : ObjectId( "556ff84a1c99195ded71252e" ), "x" : 100, "y" : 99, "z" : 100 }
>
|
更新不存在数据时会自动创建
1 2 3 4 5 6 7 8 9 10 |
> db.jerome_collection. find ({y:100})
> db.jerome_collection.update({y:100},{y:999}, true )
WriteResult({
"nMatched" : 0,
"nUpserted" : 1,
"nModified" : 0,
"_id" : ObjectId( "556ff9556db7cf8009b5edf8" )
})
> db.jerome_collection. find ({y:999})
{ "_id" : ObjectId( "556ff9556db7cf8009b5edf8" ), "y" : 999 }
|
更新多条数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
> for (i=0;i<3;i++)db.jerome_collection.insert({c:2})
#插入三条
WriteResult({ "nInserted" : 1 })
> db.jerome_collection. find ({c:2})
{ "_id" : ObjectId( "556ffa011c99195ded71252f" ), "c" : 2 }
{ "_id" : ObjectId( "556ffa011c99195ded712530" ), "c" : 2 }
{ "_id" : ObjectId( "556ffa011c99195ded712531" ), "c" : 2 }
> db.jerome_collection.update({c:2},{c:3})
#更新
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.jerome_collection. find ({c:2})
{ "_id" : ObjectId( "556ffa011c99195ded712530" ), "c" : 2 }
{ "_id" : ObjectId( "556ffa011c99195ded712531" ), "c" : 2 }
> db.jerome_collection. find ({c:3})
#发现只更新一条,是为了防止误操作
{ "_id" : ObjectId( "556ffa011c99195ded71252f" ), "c" : 3 }
> db.jerome_collection.update({c:2},{$ set :{c:3}}, false , true )
#更新多条
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
> db.jerome_collection. find ({c:2})
> db.jerome_collection. find ({c:3})
{ "_id" : ObjectId( "556ffa011c99195ded71252f" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712530" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712531" ), "c" : 3 }
|
删除
(必须要有参数)1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
> db.jerome_collection. find ({c:3})
{ "_id" : ObjectId( "556ffa011c99195ded71252f" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712530" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712531" ), "c" : 3 }
> db.jerome_collection.remove()
#不可用
2015-06-04T00:15:34.444-0700 remove needs a query at src /mongo/shell/collection .js:299
> db.jerome_collection. find ({c:3})
{ "_id" : ObjectId( "556ffa011c99195ded71252f" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712530" ), "c" : 3 }
{ "_id" : ObjectId( "556ffa011c99195ded712531" ), "c" : 3 }
> db.jerome_collection.remove({c:3}) #删除必须要有参数
WriteResult({ "nRemoved" : 3 })
> db.jerome_collection. find ({c:3})
#删除成功
>
|
索引
数据较多时,使用索引速度加快。 查看集合索引情况1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
> for (i=0;i<100;i++)db.jerome_collection.insert({x:i})
#添加测试数据
WriteResult({ "nInserted" : 1 })
> db.jerome_collection.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_" ,
"ns" : "jerome.jerome_collection"
}
]
>
|
创建索引 1代表正向排序,-1代表反向排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
> db.jerome_collection.ensureIndex({x:1})
{
"createdCollectionAutomatically" : false ,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
> db.jerome_collection.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_" ,
"ns" : "jerome.jerome_collection"
},
{
"v" : 1,
"key" : {
"x" : 1
},
"name" : "x_1" ,
"ns" : "jerome.jerome_collection"
}
]
>
|
索引虽然会使写入的数度变慢,但是查询的速度变快了。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。