NoSQL Manager for MongoDB——MongoDB图形化管理工具

下载地址:
https://www.mongodbmanager.com/download


CRUD操作

快捷键:F6执行光标所在语句,F5执行所有语句


插入文档

/*
   插入文档
   db..insert();
*/

use test;

db.stus.insert({name:"tom",age:18,gender:"male"});

db.stus.insert([
    {name:"Oliver",age:36,gender:"male"},
    {name:"Siya",age:16,gender:"female"},
    {name:"John",age:26,gender:"male"},
    {name:"Alisi",age:21,gender:"female"}

]);

db.stus.find();


修改文档

/*
   修改文档
   db..update();
*/

db.stus.find();

db.stus.update(
    {name:"tom"},
    {
      //对于已有属性,进行修改,对未有属性,进行添加并赋值
      //$set:{age:30,gender:"female"}

	 //  删除属性
       //$unset:{gender:1}

	//MongoDB文档的属性也可以是一个文档,这个文档被称为内嵌文档
    //$set:{hobby:{cities:["beijing","shanghai"],movies:["hero","arrow"]}

	//$push用于向数组中添加一个新的元素
	//$addToSet 用于向数组中添加一个不重复的元素
	
	db.stus.update({name:"tom"},{$addToSet:{"hobby.cities":"hubei"}});
  
    },
    {multi:true} //默认只修改查询到的第一个
 );


查询文档

/*
   查询文档
   db..find();
*/

db.stus.find();   //查询所有文档

db.stus.find({name:"tom"}); //find查询name为tom的文档,返回数组
db.stus.find({name:"tom"})[0].name;

db.stus.findOne({name:"tom"});//findOne查询第一个name为tom的文档,返回文档对象
db.stus.findOne({name:"tom"}).name;


db.stus.find({name:"tom",age:20});  //查询name为tom的文档且age为20的文档

db.stus.find().count();//查询集合中文档数量

删除文档

/*
   删除文档
   db..remove();
*/

db.stus.find();

db.stus.remove({});  //无参删除全部文档

db.stus.remove({name:"tom"});//默认删除多个符合条件的文档

db.stus.remove({name:"Siya"},true);//设置第二个参数为true,只删除查询到的第一个文档

db.stus.drop();  //删除集合,性能高于remove的全删
show collections;

show dbs;
db.dropDatabase();


自增incremnet

//自增inc

db.numbers.find();

db.numbers.updateMany(
{
  num:{$lte:100}
},
{
$inc:{num:10}
}
  

);

批量添加数据及查询

//批量添加数据

var arr = [];

for(var i=1;i<40000;i++)
{
    arr.push({num:i});
}
db.numbers.insert(arr);

db.numbers.find();

db.numbers.drop();

//查询numbers集合中num大于500的文档
db.numbers.find({num:{$gt:500}});

//小于
db.numbers.find({num:{$lt:500}});

//大于40小于50
db.numbers.find({num:{$gt:40,$lt:50}});

//查询小于10或大于39000

db.numbers.find();

db.numbers.find({
    $or:[{num:{$lt:10}},{num:{$gt:39000}}]
    });

//查询集合中的前10条数据
db.numbers.find().limit(10);

//查询集合中的11到20条数据,skip设置跳过数据量
db.numbers.find().skip(10).limit(10);

//21-30
db.numbers.find().skip(20).limit(10);

//MongoDB会自动调整skip和limit的顺序
db.numbers.find().limit(10).skip(20);

sort投影

//查询默认按照_id的值递增排序

db.numbers.find();

//sort()指定文档排序规则,-1降序,1升序
//sort({属性:值,属性:值});

db.numbers.find().sort({num:-1});

//find的第二个参数设置投影
//0表示不显示
db.stus.find();
db.stus.find({},{_id:0,teacher_ids:0});

文档间的关系

/*
    文档间的关系
        一对一
        一对多/多对一
        多对多
*/

//一对多  用户users&&订单orders

db.user.insert([{username:"gl"},{username:"wz"}]);

db.user.find();

db.user.drop();

db.orders.insert(
    [
    {
        list:["1","2","3"],
        user_id:ObjectId("5cfb88ca246f47af44c5c59b")
    },
    {
        list:["4","5","6"],
        user_id:ObjectId("5cfb88ca246f47af44c5c59b")
    },
    
     {
     list:["a","b","c"],
        user_id:ObjectId("5cfb88ca246f47af44c5c59c")
    },
    
     {
     list:["d","e","f"],
        user_id:ObjectId("5cfb88ca246f47af44c5c59c")
    },
    ]

);

db.orders.find();


var user_id = db.user.find({username:"gl"})[0]._id;
user_id

var user_id2 = db.user.find({username:"wz"})[0]._id;
db.orders.find({user_id:user_id2});


//多对多  老师&&学生

db.teacher.insert([
    {name:1},
    {name:2},
    {name:3}
    ]);

db.teacher.find();
db.teacher.drop();

db.stus.insert([
    {name:"A",
        teacher_ids:[ObjectId("5cfb8d7b246f47af44c5c5a5"),ObjectId("5cfb8d7b246f47af44c5c5a6")]
    },
   {name:"B",
   teacher_ids:[ObjectId("5cfb8d7b246f47af44c5c5a5"),ObjectId("5cfb8d7b246f47af44c5c5a6"),ObjectId("5cfb8d7b246f47af44c5c5a7")]
    },
    {name:"C",
        teacher_ids:[ObjectId("5cfb8d7b246f47af44c5c5a5")]
    }
]);

db.stus.drop();

db.stus.find();


//查询学生A有多少位老师

var arr = [];
arr[0] = db.stus.find({name:"A"})[0].teacher_ids[0];
arr[1] = db.stus.find({name:"A"})[0].teacher_ids[1];

db.teacher.find({_id:arr[0]});
db.teacher.find({_id:arr[1]});




你可能感兴趣的:(MongoDB)