Mongoose 返回未定义的属性值

问题描述 投票:0回答:4

嗯,我正在尝试使用 Mongoose find() 从对象中获取属性值,但由于某种原因,猫鼬返回了一个未定义的值。

架构:

const mongoose = require('mongoose');
const uuid = require('uuid');

const Schema = mongoose.Schema({
  dsID: { type: String, unique: true, require: true },
  dsTag: { type: String },

  mcCode: { type: String, default: () => uuid.v4(), unique: true, select: false },
  mcConnected: { type: Boolean, default: false }

}, { versionKey: false });

const Members = mongoose.model("Members", Schema);
module.exports = Members;

代码

// Database connection
mongoose.connect(DATABASE.uri, DATABASE.options);

Members.find({ 'dsID': dsID }, (err, member) => {
  const connected = member.mcConnected;

  console.log(connected)
});
javascript node.js mongodb mongoose
4个回答
0
投票

这可能是因为您不应该将模型命名为“Schema”。尝试使用其他名称,因为“Schema”是保留字


0
投票

在架构上使用此代码

const mongoose = require('mongoose');
const uuid = require('uuid');

const memberSchema = new mongoose.Schema({
  dsID: { type: String, unique: true, require: true },
  dsTag: { type: String },

  mcCode: { type: String, default: () => uuid.v4(), unique: true, select: false },
  mcConnected: { type: Boolean, default: false }

}, { versionKey: false });

const Members = mongoose.model("Members", memberSchema);
module.exports = Members;

0
投票

来吧,孩子们:

const app = express()
const port = 3000

//MongoDB Connection
const DB_Connect = require('./(8.1)MongoDB_Connection')
const DB = DB_Connect() //returning a Model

//Middleware
const logger = function(req, res, next) {
    console.log('logging')
    next()
}
app.use(logger)

//Routes
app.get('/', async(req, res) => {
    console.log(DB.then((docs) => {
        console.log(docs.find({ name: 'POCO X3 Pro' }, (error, docs) => {
            if (error) {
                console.log("Error: " + error)
            } else {
                console.log(docs)
            }
        }))
    }))
})

/*

DB is a Model and console.log(DB) gives : " Promise { Model { users } } ".

But for Promise we use .then() for result.
    Model { users }

As we use .find(), we got the answer

*/

//Listening
app.listen(port, () => console.log(`Example app listening on port ${port}!`))

//Muhammad Irtaza Ghaffar (Pakistan)

稍后谢谢我!


0
投票

dsID: { type: String, unique: true, require: true }

Mongoose.js 参数

required
而不是
require
,所以您可能需要修复它。可能由于参数损坏而导致数据库条目丢失,或者架构出现错误,从而导致
undefined
输出。

© www.soinside.com 2019 - 2024. All rights reserved.