mongodb命令:
mongo开机命令:
mongod --dbpath E:\mongo
如果不输入–path指定文件位置,则会默认进入C:data\db\,前提你得创建好。
打开一个新的cmd进行操作:
连接mongo数据库:
mongo
显示文件夹内所有数据库:
show dbs
选择/创建数据库,有则进入,无则自动创建:
use xiongtm
显示所有:
show collections
collections是复数,所以里面可能有多个集合。如数据库“xiongtm”里面分别有两个集合“student”和“xiongtm”。
插入数据到集合(student),有则进入,无则自动创建:
db.student.insert({"name":"李四"},{"age":"23"})
查看某个集合(student)的所有数据:
db.student.find()
精确查找某个集合(sutdent)所有数据:
db.student.find({"age":17})//查找所有年龄为17的学生
db.student.find({"age":17,"sex":"男"})//查找所有年龄为17的男生
删除集合(sutdent):
db.student.drop()
显示当前所在数据库(xiongtm):
db
删除当前所在数据库(xiongtm):
db.dropDatabase()
从外部批量导入数据:
mongoimport --db xiongtm --collection student --drop --file
--db xiongtm
:指定数据库
--db collection student
:指定集合
--drop
:清空集合,不写则追加
--file
:指定文件路径
从mongo的安装目录C:\Program Files\MongoDB\Server\3.2\bin 中可以看出:
bin文件夹有多个exe执行程序,不同的程序负责执行不同的命令。所以我们需要新开一个cmd,再输入以上代码。
设置索引(防止插入重复数据):
可以设置唯一索引解决,比如”name”字段不能重复,可以设置”name”字段为唯一索引。
db.things.ensureIndex({“name”:1},{unique:true})
删除索引:
//删除t3 表中的所有索引
db.t3.dropIndexes()
//删除t4 表中的firstname 索引
db.t4.dropIndex({firstname: 1})
nodejs 连接mongodb进行操作:
var MongoClient = require('mongodb').MongoClient;
var dburl = 'mongodb://localhost:27017/zhihu';
//不管数据库什么操作,都是先连接数据库,所以我们可以把连接数据库
//封装成为内部函数
function _connectDB(callback) {
var url = dburl; //从settings文件中,都数据库地址
//连接数据库
MongoClient.connect(url, function (err, db) {
if (err) {
callback(err, null);
return;
}
callback(err, db);
});
}
//插入数据
exports.insertOne = function (collectionName, json, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).insertOne(json, function (err, result) {
callback(err, result);
db.close(); //关闭数据库
})
})
};
//查找数据,找到所有数据。args是个对象{"pageamount":10,"page":10}
exports.find = function (collectionName, json, C, D) {
var result = []; //结果数组
if (arguments.length == 3) {
//那么参数C就是callback,参数D没有传。
var callback = C;
var skipnumber = 0;
//数目限制
var limit = 0;
} else if (arguments.length == 4) {
var callback = D;
var args = C;
//应该省略的条数
var skipnumber = args.pageamount * args.page || 0;
//数目限制
var limit = args.pageamount || 0;
//排序方式
var sort = args.sort || {};
} else {
throw new Error("find函数的参数个数,必须是3个,或者4个。");
return;
}
//连接数据库,连接之后查找所有
_connectDB(function (err, db) {
var cursor = db.collection(collectionName).find(json).skip(skipnumber).limit(limit).sort(sort);
cursor.each(function (err, doc) {
if (err) {
callback(err, null);
db.close(); //关闭数据库
return;
}
if (doc != null) {
result.push(doc); //放入结果数组
} else {
//遍历结束,没有更多的文档了
callback(null, result);
db.close(); //关闭数据库
}
});
});
}
//删除
exports.deleteMany = function (collectionName, json, callback) {
_connectDB(function (err, db) {
//删除
db.collection(collectionName).deleteMany(
json,
function (err, results) {
callback(err, results);
db.close(); //关闭数据库
}
);
});
}
//修改
exports.updateMany = function (collectionName, json1, json2, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).updateMany(
json1,
json2,
function (err, results) {
callback(err, results);
db.close();
});
})
}
exports.getAllCount = function (collectionName,callback) {
_connectDB(function (err, db) {
db.collection(collectionName).count({}).then(function(count) {
callback(count);
db.close();
});
})
}