MongoDB——crud
/*
db.<collections>.insert();
- 向集合中插入一个或多个文档
- 如果向集合中添加文档的时候,没有指定_id属性,则数据库会自动为文档添加_id属性
该属性用来作为文档的唯一标识,自己指定了就不会自动添加
- 在指定id时必须确保其唯一性
db.<collections>.insertOne()
- 插入一个对象
db.<collections>.insertMany()
- 插入多个对象
- 使用数组包裹插入的数据,就算插入一个文档也要用数组包裹起来
*/
db.stus.insert({name:"张三",age:18,gender:"男"});
db.stus.insert({name:"李四",age:20,gender:"男"});
db.stus.find();
/*
查询
db.collection.find()
- 默认只会添加一个,可是使用数组来添加多个文档
- find():用来查询集合中所有符合条件的文档
- find(),可以接受一个对象作为查询的条件参数
{},表示查询集合中的所有的文档
{字段:值},查询字段是指定值的文档
多个查询条件中间使用,分割
- find(),返回的是一个数组
db.collection.findOne()
- 查询符合条件的第一个文档
- 返回的是一个文档对象
db.collection.find({}).count();
- 统计文档个数
*/
db.stus.insert({_id:"001",name:"樟树",age:19,gender:"男"});
db.stus.find({_id:"001"});
db.stus.find({age:19});
db.stus.findOne({age:19}).name;
db.stus.find({}).count();
/*
修改
db.collection.update()
- 修改文档的属性值
- 至少需要两个参数
1.查询到要修改的文档
2.要修改的属性和属性值
- 默认只会修改第一个符合条件的文档
$set:{},在大括号中指定要修改的字段名和值,多个字段之间使用,分隔
$unset{},删除文档中指定的属性
db.collection.updateOne()
- 只修改第一个符合条件的文档
db.collection.updateMany()
- 修改所有符合条件的文档
*/
db.stus.find({});
db.stus.update({id:"001"},{$set:{
name:"南辕北辙",
gender:"女"
}});
db.stus.update({id:"001"},{$unset:{
id:1
}});
//修改所有age是19的文档的name属性值为王五
db.stus.updateMany({age:19},{
$set:{
name:"王五"
}
});
db.stus.find({});
/*
删除
db.collection.remove()
- 根据条件删除指定的文档
- 删除符合条件的所有文档(默认)
- 在条件后面传一个参数true,则只会删除第一个符合条件的文档
- 如果传递一个空对象作为参数,则会删除集合中的全部文档
db.collection.drop()
- 删除集合
db.dropDatabase()
- 删除数据库
*/
db.stus.remove({_id:"001"});
db.stus.insert(
[{name:"大马猴"},{name:"光头强"}]
);
db.stus.update({name:"大马猴"},{$set:{
age:28
}});
db.stus.update({name:"光头强"},{$set:{
age:28
}});
db.stus.find({});
db.stus.remove({age:28},true);
------------------------------------------------------------------------------------------------------
mongoose-crud
var mongoose = require("mongoose");
var mongoosePromise = mongoose.connect("mongodb://localhost/mongodb_test");
mongoose.connection.once("open", function () {
console.log("数据库连接成功");
});
var Schema = mongoose.Schema;
var stuSchema = new Schema({
name: String,
age: Number,
gender: {
type: String,
default: "male"
},
address: String
});
var stuModel = mongoose.model("students", stuSchema);
/*
* model中的方法
* - 增加
* Model.create(doc(s),[callback])
* - 用来创建一个或多个文档并且添加到数据库中
* - 参数
* doc(s) 可以是一个文档对象,也可以是一个文档对象的数组
* callback 操作完成之后执行的回到函数
- 查询
* Model.find()
* - 查询所有符合条件的文档
* - 查询到的结果会作为回调函数的参数返回(返回的是一个数组)
* - 没查到也会返回一个数组
* Model.findById()
* - 根据文档的id属性查询文档
* -
* Model.findOne()
* - 查询符合条件的第一个文档
* - 返回一个具体的文档对象,不返回数组
*
* - 参数
* 1.查询条件
* 2.投影(2种方式)
* 3.{skip: , limit: },选项设置
* 4.回调函数
- 修改
* Model.update()
* Model.updateMany()
* Model.updateOne()
* Model.replaceOne()
* - 用法和MongoDB一样
- 删除
* Model.remove()
* Model.deleteOne()
* Model.deleteMany()
* - 用法和MongoDB一样
*
- 统计数量(count)
* 统计符合条件的文档的数量
* 会将返回的结果作为回调函数的参数返回
* */
stuModel.count({name: "光头强"}, function (err, result) {
if (!err) {
console.log("符合条件的文档的数量:" + result);
}
});
/*stuModel.remove({name: "翠花"}, function (err) {
if (!err) {
console.log("删除成功");
}
});*/
// stuModel.updateOne({name: "翠花"}, {$set: {age: 18}}, function (err) {
// if (!err) {
// console.log("修改成功");
// }
// });
/*stuModel.find({name: "光头强"}, function (err, docs) {
if (!err) {
console.log(docs[0].name);
}
});*/
// stuModel.findById("62458331d484e578aae81d98", function (err, doc) {
// if (!err) {
// console.log(doc);
// }
// });
/*stuModel.findOne({}, function (err, doc) {
if (!err) {
console.log(doc);
}
});*/
/*stuModel.find({}, null, {skip: 2, limit: 2}, function (err, docs) {
if (!err) {
console.log(docs);
}
});*/
//投影写法1,使用{}
/*stuModel.find({}, {name:1,_id:0},function (err, docs) {
if (!err) {
console.log(docs);
}
});*/
//投影写法2,使用字符串的形式
/*stuModel.find({}, "name age -_id",function (err, docs) {
if (!err) {
console.log(docs);
}
});*/
//不写条件就是查询所有的文档
/*
stuModel.find({}, function (err, docs) {
if (!err) {
console.log(docs);
}
});
*/
/*
var promise = stuModel.create([
{
name: "熊大",
age: 22,
gender: "female",
address: "狗熊岭"
},
{
name: "熊二",
age: 20,
gender: "female",
address: "狗熊岭"
}
], function (err) {
if (!err) {
console.log("插入成功");
}
});*/
MongoDB_crud
最新推荐文章于 2024-11-06 20:38:26 发布