var objectId = require('mongodb').ObjectId;
const mongoose = require("mongoose");
var SchemaObj = mongoose.Schema;
DB_URL = "mongodb://localhost:27017/admin";
mongoose.connect(DB_URL); //创建链接
/*
* 连接成功
*/
mongoose.connection.on("connected", () => {
console.log("数据库连接成功!");
});
/**
* 连接异常
*/
mongoose.connection.on("error", err => {
console.log("数据库连接失败!" + err);
});
/**
* 连接断开
*/
mongoose.connection.on("disconnected", () => {
console.log("数据库连接中断!");
});
const UserSchema = new SchemaObj({
name: {
type: String,
required: true
},
password: {
type: String,
required: true
},
avatar: {
type: String
},
type:{
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
const User = mongoose.model("users", UserSchema);
const UserDataSchema = new SchemaObj({
name: {
type: String,
required: true
},
password: {
type: String,
required: true
},
avatar: {
type: String
},
type:{
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
const UserData = mongoose.model("userData", UserDataSchema);
let query = User.find({});
let pageSize = 2; //查询数量
let pageCount = 1; //查询页码
let insertFlag = true; //是否添加数据
let setTime = setInterval(() => {
let startPage = (pageCount - 1) * pageSize; //开始条数
query.limit(pageSize); //设置查询条数
query.skip(startPage); //开始条数
console.log("pageSize", pageSize, "startPage", startPage, "pageCount", pageCount)
pageCount += 1;
query.exec((err, data) => {
if (err) throw err;
if (data.length < pageSize) {
console.log('close');
clearInterval(setTime);
}
for (var i = 0; i < data.length; i++) {
const userData = new UserData({
_id: data[i]._id,
name: data[i].name,
password: data[i].password,
type: data[i].type,
avatar: data[i].avatar,
date: data[i].date
});
//去除重复数据
UserData.findOne({
_id: objectId(data[i]._id)
},
function (err, doc) {
if (err) throw err;
if (doc != null) {
insertFlag = false;
}
}
);
if (insertFlag) {
userData
.save()
.then('同步数据: ' + JSON.stringify(userData))
.catch(err => console.log(err));
}
}
});
}, 1000);