我正在尝试将Node / Express服务器连接到现有的MongoDB数据库/集合。我已经成功连接到数据库。但是,我在建立模型/模式以进行查询时非常困难。
MongoDB是MongoDB Atlas,有一个集合,包含80万多个文档。单个集合的名称是“ delitosCollection”。
我尝试以下操作均未成功:
var CrimeData = mongoose.model('DelitosCollection', new Schema({}),'delitosCollection');
mongoose.connection.on('open', function(ref){
console.log("connected to the mongo server");
CrimeData.find({}, (err,results) => {
if(err){
console.log("ERROR")
throw err
}
console.log("results: ", results.length)
} )
});
我知道连接正常,因为我收到的console.log没有错误。但是,results.length超过800,000时将返回0。在此上花费了太多时间。
答案 0 :(得分:0)
与mongo db的连接
// Crimes Schema
const CrimeDetailsSchema= new Schema({
first_name: {
type: String,
required: true
},
last_name: {
type: String,
required: true
},
email: {
type: String,
required: true
}
});
const Profile = module.exports = mongoose.model('delitosCollection', CrimeDetailsSchema, 'delitosCollection');
之后,您将必须创建架构,然后只有您才能查询数据库
像这样创建您的架构
express.Router
之后创建查询
您可以在猫鼬文档here
中找到关于此的想法答案 1 :(得分:0)
您可以参考下面给出的答案,只需在模式中传递一个空对象 就像db.model('users',new Schema({}))
答案 2 :(得分:0)
为要使用的每个集合创建一个空模式 然后创建要在项目中使用的模型 模型取3参数 1)型号名称 2)模式名称 3)集合名称(来自mongodb地图集)
喜欢
const mongoose = require('mongoose');
mongoose.connect('mongodb uri')
const userSchema = new mongoose.Schema({});
const User = mongoose.model('User', userSchema, 'user');
那么您就可以正常使用模型了
User.find({})