MongoDB Mysql
数据库 数据库
集合 表
文档 数据行
1、插入命令
db.test.insert({_id: "hello", name:"yyy", age: 1});
db.test.insert([
{name:"yjs", age: 12},
{name:"lrh", age: 13},
{name:"yyy", age: 1}
]);
db.test.insertOne({name:"yyy", age: 1});
db.test.insertMany([
{name:"yjs", age: 12},
{name:"lrh", age: 13},
{name:"yyy", age: 1}
]);
db.users.insert([
{username: "yyy", hobby: {movies: ["a1","a2","a3"]}}
]);
for(var i=1; i<=2000; i++) {
db.numbers.insert({num: i});
}
var arr=[]
for(var i=1; i<=2000; i++) {
arr.push({num:i})
}
db.numbers.insert(arr)
db.numbers.find({num: {$gt:1990}})
db.numbers.find({num: {$eq:1990}})
db.numbers.find({num: {$lt:1990}})
db.numbers.find({num: {$gt:1990, $lt: 1999}})
db.numbers.find().limit(10)
db.numbers.find().limit(10).skip(10);
2、查询命令
db.collection.find({属性:值})
db.test.find({_id: "hello"})
db.test.find({age:12, name:"yjs"})
db.test.findOne({age:12, name:"yjs"})
db.test.find({age:12, name:"yjs"})[1].name
db.test.find({age:12, name:"yjs"}).count()
db.test.find({"hobby.movies":"hero"}); -- 直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过. 的形式来匹配,但是此时属性名必须使用引号
db.users.find({"hobby.movies": "a1,a2,a3"})
db.users.updateOne({username: "yyy"}, {$push:{"hobby.movies": "c1"}}) --重复添加
db.users.updateOne({username: "yyy"}, {$addToSet:{"hobby.movies": "c1"}}) --覆盖写添加
一对多:
db.users.insert([
{username: "yjs"},
{username: "yyy"}
])
db.orders.insert({
list:["香蕉","草莓"],
user_iid: ObjectId("62359cab7be546e9dc37f8c1")
})
var user_id = db.users.findOne({username:"yjs"})._id;
db.orders.find({user_iid: user_id})
多对多:
db.teachers.find()
db.students.find()
db.teachers.insert([
{username: "yjs"},
{username: "yyy"}
])
db.students.insert([
{
name: "student1",
teacher_ids:[
ObjectId("62359e327be546e9dc37f8c5"),
ObjectId("62359e327be546e9dc37f8c5")
]
},
{
name: "student2",
teacher_ids:[
ObjectId("62359e327be546e9dc37f8c5"),
ObjectId("62359e327be546e9dc37f8c5")
]
}
])
3、修改命令
db.collection.update(查询条件,新对象);
-- update 默认情况下会使用新对象来替换旧的对象
-- 如果需要修改指定的属性,使用修改操作符来完成修改
$set: 修改文档中的指定属性
$unset: 删除文档中的指定属性
-- 默认只会修改一个
db.collection.updateMany(查询条件,新对象);
-- 同时修改多个符合条件的文档
db.collection.updateMany(查询条件,新对象);
-- 修改一个符合条件的文档
db.collection.replaceOne(查询条件,新对象);
-- 替换一个符合条件的文档
db.test.update({name: "yjs"}, {age: 28}); -- 一般不用
db.test.update(
{"_id": ObjectId("623540f8fed1bbdff94c643b")},
{$set:{name:"yjs1"}}
);
db.test.update(
{"_id": ObjectId("623540f8fed1bbdff94c643b")},
{$set:{
name: "yjs1",
gender: "man",
address: "chengdu"
}}
);
删除属性:
db.test.update(
{"_id": ObjectId("623540f8fed1bbdff94c643b")},
{$unset:{
address: "该参数无效"
}}
);
db.test.updateMany(
{"name": "yjs1"},
{$set:{
name: "yjs2",
gender: "man",
address: "chengdu"
}}
);
db.test.update(
{"name": "yjs2"},
{$set:{
name: "yjs3",
gender: "man",
address: "chengdu"
}},
{
multi: true
}
);
4、删除
db.collection.remove(查询条件);
-- 默认删除多个
-- 第二个参数设置为true时表示删除1个
db.collection.deleteOne(查询条件);
db.collection.deleteMany(查询条件);
db.test.remove({_id: "hello"});
db.test.remove({name: "yjs3"}, true);
db.test.remove({}); --删除集合中的所有文档,效率低(要遍历所有数据)
db.users.deleteOne({"hobby.movies": "a1"})
清空集合:
db.test.drop() -- 直接删除集合