如何将猫鼬连接/查询到现有数据库

时间:2019-01-04 22:15:57

标签: mongodb mongoose mongoose-schema mongoose-models

我正在尝试将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。在此上花费了太多时间。

3 个答案:

答案 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({})