LMLPHP后院

MongoDB 的一些基础命令

创建数据库:

> use db_name

查看当前数据库:

> db

查看数据库状态:

> db.stats()

查看所有的数据库列表:

> show dbs

删除数据库:

> db.dropDatabase()

创建集合,options 可选:

> db.createCollection('collection_name', {options:''})

查看集合:

> show collections

删除集合:

> db.collection_name.drop()

插入文档:

> db.collection_name.insert({document_key:value})

查看文档:

> db.collection_name.find()

结构化显示文档,使用 pretty() 方法:

> db.collection_name.find().pretty()

只查看一个文档,使用 findOne() 方法返回一个文档:

> db.collection_name.findOne()

条件查询(相等):

> db.collection_name.find({"name":"lmlphp"})

条件查询(小于)

> db.collection_name.find({"amount":{$lt:100}})

同理:

  • 小于等于 $lte
  • 大于 $gt
  • 大于等于 $gte
  • 不等于 $ne

查询指定字段,显示 name 字段,不显示 _id 字段,如下示例:

> db.collection_name.find({},{name:1,_id:0})

逻辑与运算,AND 查询:

> db.collection_name.find({"name":"lmljs","author":"may"})

逻辑或运算,OR 查询:

> db.collection_name.find({
    $or:[
        {name:lmljs},{name:lblog}
    ]
})

更新文档,使用 update 方法:

> db.collection_name.update({"name":"lmlphp"},{$set:{"name":"lmljs"}})

更新多个文档:

> db.collection_name.update({...},{$set:{...}},{multi:true})

save() 方法示例:

> db.collection_name.save({
  "_id":ObjectId(....), "key":"value"
})

删除文档:

> db.collection_name.remove({"key":"value"})

删除一个:

> db.collection_name.remove({"key":"value", 1})

删除所有:

> db.collection_name.remove()

skip() 和 limit() 的使用:

> db.collection_name.find().limit(1).skip(2)

sort() 排序:

> db.collection_name.find().sort({score:1})

ensureIndex() 建索引:

> db.collection_name.ensureIndex({"name":1})

aggregate() 聚合,如下示例相当于 group by name 字段,且计算数量:

> db.collection_name.aggregate(
  [{$group:{_id:"$name",count:{$sum:1}}}]
)

aggregate() 聚合,条件过滤 $match 使用:

db.collection_name.aggregate(
  [{$match:{uid:98307}},{$group:{_id:"$name",count:{$sum:1}}}]
);

创建超级用户:

use admin;
db.createUser({user:"super",pwd:"lmlphp",roles:["root","userAdminAnyDatabase"]});

安全模式运行 :

$ ./mongod --fork --config mongod.conf

mongod.conf

security:
  authorization: enabled
2024-04-20 18:52:47 1713610367 0.009287