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
广告
将在 10 秒后关闭
bannerAds