下载地址:
https://www.mongodbmanager.com/download
快捷键: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();
//自增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);
//查询默认按照_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]});