MongoDB命令备忘录
我正为自己整理着。
简要概括
-
- ドキュメント指向
-
- スキーマレス(データ構造を決めない)
-
- Databeseの中にCollectionをいくつも作れる
- Collectionの中にDocumentをいくつも作れる
收集(帖子 用户等)
→桌子
文件
“唱片”
-
- field: val;
-
- field: value;
- スキーマレス
命令列表
数据库列表
show hoge
创建数据库
use hoge
制作收藏品
db.createCollection("hoge");
数据库信息 (Database information)
db.stats();
删除数据库
db.dropDatabase();
收藏列表
show collections;
将Collection的名称从“users”更改为“customers”。
db.users.renameCollection("customers");
删除收藏
db.hoge.drop();
创建文件
db.hoge.insert(
{
name: "Taro Yamada",
score: 30
}
)
添加标签的非模式化。
db.hoge.insert({
name: "Taro Yamada",
score: 50,
tags: ["web", "mobile"]
});
可以使用JS进行插入操作。
for (var i = 0; i < 10; i++ ) {
db.hoge.insert({
score: Math.random();
});
}
文件的数量 de
db.hoge.count();
显示所有的Document数据
db.hoge.find();
删除所有文件
db.hoge.remove({});
仅提取团队1。
db.hoge.find({ team: "team-1" });
提取分数大于或等于50的数据。
db.hoge.find({ score: { $gte: 50 } });
// $gte $gt $lte $lt 以上 未満
// $eq イコール
// $ne イコールでない
提取出的团队仅为团队1
db.hoge.find({ team: { $eq: "team-1" } });
提取包含”name”中的字母”t”的内容(正则表达式)。
db.hoge.find({ name: /t/ });
提取团队的值。
db.hoge.distinct("team");
只需提供一种选项,以下是对其进行汉语的本地化释义:
名称中包含字母“i”,且分数在50分以上。
db.hoge.find({ name: /i/, score: { $gte: 50 } });
姓名中包含字母「i」或得分达到50分以上。
db.hoge.find({ $or: [{ name:/i/ }, { score: { $gte: 50 } }] });
提取得分为52分或66分的项目。
db.hoge.find({ score: { $in: [52, 66] } });
提取具有age存在的文档
db.hoge.find({ age: { $exists: true } });
指定要在整个数据中显示的字段(第二个参数)。
db.hoge.find({}, { name: true, score: 1 });
显示不包含得分的所有数据。
db.hoge.find({}, { score: 0 });
默认情况下显示id,隐藏id并仅显示score。其他部分使用1和0、true和false的混用是不允许的。
db.hoge.find({}, { score: 1, _id: 0 });
按照得分从小到大显示。
db.hoge.find({}, { _id: 0 }).sort({ score: 1 });
只显示3件
db.hoge.find({}, { _id: 0 }).limit(3);
显示前三名的分数。
db.hoge.find({}, { _id: 0 }).sort({ score: -1 }).limit(3);
只显示第一条
db.hoge.findOne({}, { _id: 0 });
从第三行开始显示所有数据。
db.hoge.find({}, { _id: 0 }).skip(2);
更新了山田的分数文件到80。
db.hoge.update({ name: "yamada" }, { $set: { score: 80 } });
更新山田先生的得分和团队文件。
db.hoge.update({ name: "yamada" }, { $set: { score: 90, team: "team-2" } });
如果不是集合,所有文档都将被更改或删除。
db.hoge.update({ name: "yamada" }, { name: "sato" score: 90 });
如果第3个参数设置为multi:true,那么匹配到的所有文档(team2)的数据得分(score)将被更改为0。
db.hoge.update({ team: "team-2" }, { $set: { score: 0 }}, { multi: true });
可以使用inc在特定的文档中增加值。
db.hoge.update({ name: "yamada" }, { $inc: { score: 5 } });
可以用mul函数将特定的文档进行乘法运算。
db.hoge.update({ name: "yamada" }, { $mul: { score: 2 } });
如果想要更改字段的名称,请将 socre 更改为 point。
db.hoge.update({ name: "yamada" }, { $rename: { soore: "point" } });
添加字段并填入值。
db.hoge.update({ name: "yamada" }, { $set: { team: "team-4" } });
删除字段(同时删除值)。
db.hoge.update({ name: "yamada" }, { $unset: { team: "" } });
如果要更新一个不存在的字段,可以在第三个参数中写入”upsert”(score字段不存在)。
db.hoge.update({ name: "yamada" }, { name: "sato", score: 48 }, { upsert: true });
删除特定的文件
db.hoge.remove({ name: "taro" });
展示指标信息
db.hoge.getIndexes();
按照降序添加索引
db.hoge.createIndex({ score: -1 });
删除索引
db.hoge.dropIndex("score_1");
以exit命令退出MongoDB
exit
备份
mongodump -d mydb
数据恢复
mongorestore --drop