gpt4 book ai didi

node.js - MongoDb - 要创建新的 ObjectId,请尝试使用 `Mongoose.Types.ObjectId` 而不是使用 `Mongoose.Schema.ObjectId`

转载 作者:可可西里 更新时间:2023-11-01 10:02:06 27 4
gpt4 key购买 nike

我是 Node.js 和 mongodb 的新手。

在我的 Node.js 应用程序中,我使用的是 mongodb,对于 mongodb 操作,我使用的是 mongoose。

package.json 文件中,我有以下依赖项:

"mongoose": "4.11.9"

虽然我的应用程序可以正常工作(我可以做任何我想做的事),但在服务器日志中我总是看到以下错误消息:

To create a new ObjectId please try Mongoose.Types.ObjectId instead of using Mongoose.Schema.ObjectId.

我该如何解决这个问题?

最佳答案

它已针对 mongoose 4.11.10 及更高版本修复,因此请尝试升级您的版本以消除警告。

这是 #5571 的意外副作用因为 employees.certifications 正好是 24 个字符长。

var mongoose = require('mongoose');

var zoneSchema = new mongoose.Schema({
employees: {
certifications: {type: mongoose.Schema.Types.ObjectId, ref: 'Certifications'}
}
});

var certificationsSchema = new mongoose.Schema({
type: String,
list: [{type: mongoose.Schema.Types.ObjectId, ref: 'Certification'}]
});

var certificationSchema = new mongoose.Schema({
name: String
});

var Zone = mongoose.model('Zone', zoneSchema);
var Certifications = mongoose.model('Certifications', certificationsSchema);
var Certification = mongoose.model('Certification', certificationSchema);

var newZone = new Zone();

要进一步阅读,请查看 issue#5587 & issue#5571

关于node.js - MongoDb - 要创建新的 ObjectId,请尝试使用 `Mongoose.Types.ObjectId` 而不是使用 `Mongoose.Schema.ObjectId`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49841247/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com