标签:port database find -- class 返回 print inf nstat
mongod --dbpath d:\data\db
// 如果报错
./mongod --dbpath d:\data\db
如果还不可用,就用管理员身份去运行
最后还不可用,换电脑或者换系统
如果输出 waiting for connections on port 27017 表明连接池打开成功
打开压缩的mongodb文件夹,进入bin目录
shift + 右键 选择打开 命令行窗口
help 查看帮助文档
db.help() 数据库的帮助文档
db.test.help() 当前数据库下test集合的帮助文档
db.test.find().help() 当前数据库下test集合的查询的帮助文档
show dbs 查询当前数据库连接池中的所有的数据库
admin 0.000GB
local 0.000GB
use sh1908 无则创建并且切换,有则切换
switched to db sh1908
db 查看当前是哪一个数据库
sh1908
db.stats() 当前数据库状态
{
"db" : "sh1908",
"collections" : 0,
"views" : 0,
"objects" : 0,
"avgObjSize" : 0,
"dataSize" : 0,
"storageSize" : 0,
"numExtents" : 0,
"indexes" : 0,
"indexSize" : 0,
"fileSize" : 0,
"ok" : 1
}
db.version() 查询当前数据库的版本
3.4.2
db.getMongo() 查看当前DB的链接机器地址
connection to 127.0.0.1:27017
db.dropDatabase() 删除数据库
{ "ok" : 1 }
show dbs 如果数据库没有数据,那么不会显示该数据库
db.createCollection(‘users‘) 创建了用户集合--创建了用户表
{ "ok" : 1 }
show dbs 此时可以观察到有了sh1908的数据库
语法:db.createCollection(‘users‘, {size: 20, capped: true, max: 100})
创建了集合users,创建的集合是固定的(capped: true,必须size配合的参数,如果达到最大值,会自动覆盖最先的数据),最大的容量为20字节(size:20,单位为字节),最多存储100条数据(max:100)
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔(可选) | 如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 |
autoIndexId | 布尔(可选) | 如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值(可选) | 为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。 |
max | 数值(可选) | 指定固定集合中包含文档的最大数量。 |
db.createCollection(‘course‘)
{ "ok" : 1 }
db.getCollection(‘user‘)
sh1908.user
db.getCollectionNames()
[ "course", "users" ]
db.printCollectionStats()
增删改查
db.course
sh1908.course
db.course.insert({week1: ‘node‘, week2: ‘vue‘, week5: ‘react+混合开发‘, week8:‘微信相关开发‘, week9: ‘复习‘})
WriteResult({ "nInserted" : 1 })
插入单条数据
db.col.insert({})
db.col.insertOne({})
插入多条数据
db.col.insert([ {}, {}, {} ])
db.col.insertMany([ {}, {}, {} ])
了解
插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
db.users.insertOne({username: ‘吴大勋‘, password: ‘123456‘, sex: 1, age: 18, lesson: 3, city: ‘山西‘})
{
"acknowledged" : true,
"insertedId" : ObjectId("5da5690eee7de50b8cbc6ea5")
}
db.users.insertMany([{username: ‘徐石坡‘, password:‘123456‘, sex: 1, age: 25, lesson: 3, city: ‘安徽‘},{username: ‘操鑫‘, password:‘123456‘, sex: 1, age: 40, lesson: 3, city: ‘安徽‘}])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5da56a10ee7de50b8cbc6ea6"),
ObjectId("5da56a10ee7de50b8cbc6ea7")
]
}
db.users.find() 查询当前数据库集合下的所有数据
{ "_id" : ObjectId("5da5690eee7de50b8cbc6ea5"), "username" : "吴大勋", "password" : "123456", "sex" : 1, "age" : 18, "lesson" : 3, "city" : "山西" }
{ "_id" : ObjectId("5da56a10ee7de50b8cbc6ea6"), "username" : "徐石坡", "password" : "123456", "sex" : 1, "age" : 25, "lesson" : 3, "city" : "安徽" }
{ "_id" : ObjectId("5da56a10ee7de50b8cbc6ea7"), "username" : "操鑫", "password" : "123456", "sex" : 1, "age" : 40, "lesson" : 3, "city" : "安徽" }
db.users.find().pretty() 查询数据并且格式化
{
"_id" : ObjectId("5da5690eee7de50b8cbc6ea5"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西"
}
{
"_id" : ObjectId("5da56a10ee7de50b8cbc6ea6"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽"
}
{
"_id" : ObjectId("5da56a10ee7de50b8cbc6ea7"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 40,
"lesson" : 3,
"city" : "安徽"
}
db.users.deleteOne({username: ‘吴大勋‘}) 删除用户名为吴大勋的一条记录
{ "acknowledged" : true, "deletedCount" : 1 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56a10ee7de50b8cbc6ea6"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽"
}
{
"_id" : ObjectId("5da56a10ee7de50b8cbc6ea7"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 40,
"lesson" : 3,
"city" : "安徽"
}
db.users.deleteMany({age: 40}) 删除多条年龄为40岁的记录
{ "acknowledged" : true, "deletedCount" : 1 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56a10ee7de50b8cbc6ea6"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽"
}
db.users.deleteMany({}) 删除所有的数据
{ "acknowledged" : true, "deletedCount" : 1 }
db.users.find().pretty()
// 没有返回
小结
依据5.1步骤插入数据
db.users.find().pretty()
{ 西'})
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6ea9"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6eaa"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 40,
"lesson" : 3,
"city" : "安徽"
}
db.users.updateOne({username: ‘吴大勋‘}, { $set: {age: 20}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 20,
"lesson" : 3,
"city" : "山西"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6ea9"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6eaa"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 40,
"lesson" : 3,
"city" : "安徽"
}
db.users.updateMany({}, { $set: { company: ‘千锋‘}})
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 20,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6ea9"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 25,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6eaa"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 40,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
db.users.updateMany({}, { $inc: {age: 1}}) // 所有的年龄 +1
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 21,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6ea9"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 26,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6eaa"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 41,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
db.users.updateMany({}, { $inc: {age: -3}})
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }
db.users.find().pretty()
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6ea9"),
"username" : "徐石坡",
"password" : "123456",
"sex" : 1,
"age" : 23,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
{
"_id" : ObjectId("5da56dc7ee7de50b8cbc6eaa"),
"username" : "操鑫",
"password" : "123456",
"sex" : 1,
"age" : 38,
"lesson" : 3,
"city" : "安徽",
"company" : "千锋"
}
小结
db.users.find().pretty()
db.users.find({},{}).pretty() // 同上,第一个{}代表查询的条件,第二个代表显示的字段
db.users.find({username:‘吴大勋‘}).pretty() // 查询用户名为吴大勋的记录
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
db.users.find({username:‘吴大勋‘}, {username: 1, age: 1}).pretty()
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"age" : 18
}
db.users.find({username:‘吴大勋‘}, {username: 1, age: 1, _id: 0}).pretty()
{ "username" : "吴大勋", "age" : 18 }
db.users.find({}, {username: 1, age: 1, _id: 0}).pretty()
{ "username" : "吴大勋", "age" : 18 }
{ "username" : "徐石坡", "age" : 23 }
{ "username" : "操鑫", "age" : 38 }
db.users.find({ age: { $gte: 30} }, {_id:0, username: 1}).pretty() // 查询大于等于30岁的数据 大于用 $gt
{ "username" : "操鑫" }
db.users.find({ age: { $gte: 18, $lte: 30} }, {_id:0, username: 1}).pretty()
{ "username" : "吴大勋" }
{ "username" : "徐石坡" }
db.users.find({}, {_id:0, username: 1, age: 1}).sort({age: 1}).pretty() // 年龄的升序
{ "username" : "吴大勋", "age" : 18 }
{ "username" : "徐石坡", "age" : 23 }
{ "username" : "操鑫", "age" : 38 }
db.users.find({}, {_id:0, username: 1, age: 1}).sort({age: -1}).pretty() // 年龄的降序
{ "username" : "操鑫", "age" : 38 }
{ "username" : "徐石坡", "age" : 23 }
{ "username" : "吴大勋", "age" : 18 }
db.users.find({username: /大/}, {}).pretty() // 查询名字中带大的数据---模糊查询
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
db.users.find({username: /^吴/}, {}).pretty() // 查询名字中带吴且开头的数据---模糊查询
{
"_id" : ObjectId("5da56dbeee7de50b8cbc6ea8"),
"username" : "吴大勋",
"password" : "123456",
"sex" : 1,
"age" : 18,
"lesson" : 3,
"city" : "山西",
"company" : "千锋"
}
db.users.distinct(‘city‘) // 查询所有数据的city字段组成数组,并且去重
[ "山西", "安徽" ]
db.users.distinct(‘age‘)
[ 18, 23, 38 ]
db.users.find().count() // 查询的条数
3
find(<predicate>, <projection>) modifiers
.sort({...})
.limit(<n>) ************************** 分页
.skip(<n>) ************************** 分页
.batchSize(<n>) - sets the number of docs to return per getMore
.collation({...})
.hint({...})
.readConcern(<level>)
.readPref(<mode>, <tagset>)
.count(<applySkipLimit>) - total # of objects matching query. by default ignores skip,limit
.size() - total # of objects cursor would return, honors skip,limit
.explain(<verbosity>) - accepted verbosities are {'queryPlanner', 'executionStats', 'allPlansExecution'}
.min({...})
.max({...})
.maxScan(<n>)
.maxTimeMS(<n>)
.comment(<comment>)
.snapshot()
.tailable(<isAwaitData>)
.noCursorTimeout()
.allowPartialResults()
.returnKey()
.showRecordId() - adds a $recordId field to each returned object
Cursor methods
.toArray() - ************************************ 将每一条记录转换成数组
.forEach(<func>)
.map(<func>)
.hasNext()
.next()
.close()
.objsLeftInBatch() - returns count of docs left in current batch (when exhausted, a new getMore will be issued)
.itcount() - iterates through documents and counts them
.getQueryPlan() - get query plans associated with shape. To get more info on query plans, call getQueryPlan().help().
.pretty() - pretty print each document, possibly over multiple lines
小结
标签:port database find -- class 返回 print inf nstat
原文地址:https://www.cnblogs.com/hy96/p/11680145.html