廊坊网站开发,一级造价工程师合格标准,网站可以同时做竞价和优化吗,企业融资什么意思MongoDB Shell 基本命令(一#xff09;
1. 基本概念
SQL术语/概念MongoDB术语/概念解释/说明databasedb数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,Mon…MongoDB Shell 基本命令(一
1. 基本概念
SQL术语/概念MongoDB术语/概念解释/说明databasedb数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,MongoDB自动将_id字段设置为主键
2. 文档的基本数据结构 文档的基本结构{ : , : {}, … } 封闭符 {} 分隔符 连接符 键的数据类型UTF-8字符可以用”“引起来如”name“ 的用户命名规则 (1‘_id’ 为保留字段key (2) 禁止使用’$符号 (3) 禁止使用’.符号 (4) 避免同一个{}中使用重复的 值的数据类型MongoDB支持的任意数据类型 示例一 { _id : 1, name : Zhang San }示例二 { _id : ObjectId(5e746c62040a548ab32fff13), //ObjectId对象name : Zhang San, // 字符串age : 18, // 数字(Double)alive : true, // 布尔值hobbies : [Anime,Comic,Game, 19, false,[1,2,3],{a:1}], // 数组body: {height : 170,weight : 65}, // Object 内嵌文档courses : [{ coursename : nosql },{ coursename : mysql },{ coursename : python },{ coursename : linux },{ coursename : kettle }] // 内嵌文档的数组
}MongoDB的基本数据类型
数据类型描述String字符串。存储数据常用的数据类型。在 MongoDB 中UTF-8 编码的字符串才是合法的。Integer整型数值。用于存储数值。根据你所采用的服务器可分为 32 位或 64 位。Boolean布尔值。用于存储布尔值真/假。true/false 1/0Double双精度浮点值。用于存储浮点值。Min/Max keys将一个值与 BSON二进制的 JSON元素的最低值和最高值相对比。Arrays用于将数组或列表或多个值存储为一个键。[]Timestamp时间戳。记录文档修改或添加的具体时间。Timestamp()Object用于内嵌文档。{}Null用于创建空值。Symbol符号。该数据类型基本上等同于字符串类型但不同的是它一般用于采用特殊符号类型的语言。Date日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间创建 Date 对象传入年月日信息。Object ID对象 ID。用于创建文档的 ID。Binary Data二进制数据。用于存储二进制数据。Code代码类型。用于在文档中存储 JavaScript 代码。Regular expression正则表达式类型。用于存储正则表达式。
3. 数据库db
// 查看当前服务器上的数据库
show dbs;
show databases;// 选择名为mydb的数据库如果没有则隐式创建
use mydb;// 查看当前使用的数据库
db;// 查看当前数据库的统计信息由于没有插入相关信息基本上为空值
db.stats();// 查看当前数据库的操作信息返回当前正在执行的操作
db.currentOp();// 删除当前数据库
db.dropDatabase();4. 集合collection
// 查看当前数据库中的集合
show collections;
show tables;// 创建一个名为mycoll的集合
db.createCollection(mycoll);// 重命名mycoll集合新集合名叫mycollection
db.mycoll.renameCollection(mycollectioin)// 清空一个名为mycollection的集合
db.mycollection.remove({});// 删除一个名为mycollection的集合 如果数据库没有任何集合时数据库会被自动删除。
db.mycollection.drop();4.1 添加文档到集合
insert() 方法
注意db.collection中collection为你要操作的集合的名称
db.collection.insert(document or array of documents,{multi: false}
)insertOne() 方法
添加一条文档记录
db.collection.insertOne(document{}
)insertMany() 方法
添加多条文档记录 ([]方括号表示数组
db.collection.insertMany([ document 1 {} , document 2 {}, ... ] --jsonArray
)添加一条文档记录{“lastname”:“zhang”, “firstname”:“ren”}到集合mycollection
db.mycollection.insert({lastname:zhang, firstname:san});
//返回id比较好用直接得到结果进一步获取到ObjectID
db.mycollection.insertOne({lastname:zhang, firstname:san});
var result db.mycollection.insertOne({lastname:zhang, firstname:san});
var newdoc_id result.insertedId
//可以通过find()命令查找,如果不使用bson格式会报什么错误
db.mycollection.find({_id:newdoc_id})//通过id找到对应信息添加一个文档记录对象mydoc到集合mycollection, 使用insert或insertOne方法
var mydoc {lastname:Zhang, firstname:San};
db.mycollection.insert(mydoc);
// 3.2版后新的方法insertOne
db.mycollection.insertOne(mydoc);添加多条记录到集合mycollection使用insert或insertMany方法
// 多条文档记录用数组[]进行组合用逗号分隔
db.mycollection.insert(
[{lastname:Zhang, firstname:san, role:teacher, teacher_id:2023409, title:教师, courses:[{coursename:nosql},{coursename:sqlserver}]},{lastname:Zhang, firstname:San, role:student, student_id:2022000000, grade:2022, class:1, score:80}
]
);添加一个文档数组mydocs多条文档的数组到集合mycollection使用insert或insertMany方法
// 多条文档记录用[]组合到一个数组mydocs中。
// 注意 coursename处于两个花括号中属于两个内嵌的文档不算重复的键
var mydocs [{lastname : Zhang,firstname : San,role : teacher,teacher_id : 2023409,title : 教师,courses : [{ coursename : nosql },{ coursename : mysql },{ coursename : python },{ coursename : linux },{ coursename : kettle }]},{lastname : Zhang,firstname : Yi,role : student,student_id : 2022000001,grade : 2022,class : 1,score : 80},{lastname : Tan,firstname : Er,role : student,student_id : 2022000002,grade : 2022,class : 1,score : 70}
];
db.mycollection.insertMany(mydocs);
// 3.2版后新的方法insertMany4.2 查询文档记录
find() 方法
db.collection.find(querydocument, projection)
db.collection.findOne(querydocument, projection)select projection from collection where querydocument
select student_id from mycollection where score 70;
db.mycollection.find({score:{$gt:70}},{student_id:1});// 查询集合mycollection中的文档
db.mycollection.find();// 将查询结果漂亮化只在终端有用
db.mycollection.find().pretty();// 查询集合mycollection中键为role, 值为student的文档记录
db.mycollection.find( {role : student} );// 将查询条件写入文档对象ceriteria查询
var criteria { role : student };
db.mycollection.find(criteria);// 使用内嵌对象的字段值查询
db.mycollection.find({courses.coursename:mysql})汇总操作
//1.创建数据库
//use 使用数据库如果这个数据库不存在就创建
use cqust
db db.getSiblingDB(cqust)
//Note:刚才创建的数据库看不到没有显示因为只是创建了一个名字在创建集合前没有文件生成
//2.查看数据库名
show databases;
//可以简写为
show dbs;
//3.集合(collection)可以显示的创建执行完该条语句便创建了cqust数据库以及集合
//也可以不显示创建
db.createCollection(collectionname);
//4.在集合中插入文档
//数据库操作命令: db.集合名.集合操作(参数...)
//构造文档JSON 重复字段自动过滤掉
//db.集合名.insert(文档对象)
//db.集合名.insert(文档列表对象)
//构造文档JSON 重复字段自动过滤掉
var doc{姓名:张三,性别:男,学号:2023409,课程:分布式数据库原理,成绩:90,学号:2023409};
db.collectionname.insert(doc)课堂练习
1.创建学号姓名(拼音的数据库
2.创建data集合并查看该集合
3.在data集合中插入个人信息包括学号、姓名、性别、家庭地址、今天的所有课程等信息
4.通过find()查看刚才插入的信息要求参数是insertedId
5.清空集合删除集合删除数据库