在 Express 中哪里可以找到 Mongo Collection?

Posted

技术标签:

【中文标题】在 Express 中哪里可以找到 Mongo Collection?【英文标题】:Where to find Mongo Collection in Express? 【发布时间】:2020-01-18 22:40:14 【问题描述】:

我正在查看我在 Express/Mongo/Mongoose(基于在线教程)中编写的一些旧代码,但找不到指示 MongoDB 中哪个 Collection 被写入的代码部分。

我有一个数据库,UsersDB,在该数据库中有几个集合。每次代码执行时都会不断增长的集合user.saveusers 集合。但是我在我的代码库中找不到对users 集合的任何引用。

我在代码中保存User 的唯一位置是:


var app = require('../app');
var util = require('util');
var User = require('../models/user'),
    Auth = User.Auth,
    Name = User.Name,
    Email= User.Email,
    Phone = User.Phone,
    Address = User.Address,
    Company = User.Company,
    PersonalData = User.PersonalData,
    Id = User.Id,
    Photo = User.Photo,
    Member = User.Member,
    CreditCard = User.CreditCard,
    UserObj = User.User;

var moment = require('moment');

var async = require('async');

. . . 
. . . 

exports.user_create_post = [
    (req,res, next) => 
        console.log("Request: " + util.inspect(req.body));
    ,
    //VALIDATE
    body('mainEmail', 'Must be valid email.').isLength(min: 5).trim(),

    //SANITIZE
    sanitizeBody('*').escape(),

    //POPULATE NEW DOCUMENT
    (req,res,next) => 
        const errors = validationResult(req);

        var auth = new Auth(
                dateEffective: value: moment(Date.now()).format("YYYY-MM-DD hh:mm:ss SSS"), attr: hidden: true, label: "",
                username: "value": req.body.username, "attr": hidden: false, label: "Username: ",
                password: "value": req.body.password, "attr": hidden: false, label: "Password: ",
                mainEmail: "value": req.body.mainEmail, "attr": hidden: false, label: "Email: "
            );
        var user = new UserObj(
            authData: [auth]
        );
        if (!errors.isEmpty()) 
            const errorFormatter = ( location, msg, param, value, nestedErrors ) => 
                // Build your resulting errors however you want! String, object, whatever - it works!
                return `$location[$param]: $msg`;
              ;
              const result = validationResult(req).formatWith(errorFormatter);
              if (!result.isEmpty()) 
                return res.json( errors: result.array() );
              
            
            else 
                user.save(function(err)
                    if (err)  return next(err);
                );
                res.redirect("http://localhost:4200/two-fa/"+user._id);
        
     

我还有一个Models 模块(user.js):


. . . 
. . . 
. . . 

module.exports = 
    Auth: mongoose.model('Auth', AuthSchema),
    Name: mongoose.model('Name', NameSchema),
    Email: mongoose.model('Email', EmailSchema),
    Phone: mongoose.model('Phone', PhoneSchema),
    Address: mongoose.model('Address', AddressSchema),
    Company: mongoose.model('Company', CompanySchema),
    PersonalData: mongoose.model('PersonalData', PersonalDataSchema),
    Id: mongoose.model('Id', IdSchema),
    Photo: mongoose.model('Photo', PhoneSchema),
    Member: mongoose.model('Member', MemberSchema),
    CreditCard: mongoose.model('CreditCard', CreditCardSchema),
    User: mongoose.model('User', UserSchema)

我对我的整个代码进行了搜索,但没有任何地方提到users,这是要写入的集合。

我应该在哪里查看users 集合是如何被写入的?

谢谢!

【问题讨论】:

我刚刚看到,如果未提供 mongoose.model 的第三个参数,那么 Mongo 会自动将模型名称“复数”以给出集合的名称。所以我想这回答了我的问题! 【参考方案1】:

根据how-to-access-a-preexisting-collection-with-mongoose,如果没有提供mongoose.model 的第三个参数,那么Mongo 会自动将模型名称“复数”以给出集合的名称。

【讨论】:

以上是关于在 Express 中哪里可以找到 Mongo Collection?的主要内容,如果未能解决你的问题,请参考以下文章

在哪里可以找到 IIS Express 的 appcmd.exe?

IIS Express 配置/元数据库文件在哪里找到?

我在哪里可以下载 Visual Studio 2015 Express 的离线安装? [关闭]

mongo-express 没有连接到 mongodb

Mongo基础使用,以及在Express项目中使用Mongoose

使用 Mongo/Express/Angular/Node 推送到模型中的数组