当使用蒙哥拉斯同步模型时,我收到了以下错误:
(/app/node_modules/mongoosastic/lib/mongoosastic.js:239:29) at EmbeddedDocument.schemaIndex as指标 at EmbeddedDocument.postSave (/app/node_modules/mongoosastic/lib/mongoosastic.js:269:14) at next (/app/node_modules/kareem/index.js:198:31)在/app/node_modules/mongoose/lib/plugins/saveSubdocs (/app/node_modules/kareem/index.js:217:3)处读取未定义的属性“toLowerCase”。在模型的每个(/app/node_modules/mongoose/lib/helpers/each.js:11:5)的.js:54:29。(/app/node_modules/mongoose/lib/plugins/saveSubdocs.js:53:5) at callMiddlewareFunction (/app/node_callMiddlewareFunction/kareem/index.js:482:23)下一个(/app/node_callMiddlewareFunction/kareem/index.js:193:9),下一个(/app/node_callMiddlewareFunction/kareem/index.js:212:9)在_cb (/app/node_ Kareem.execPost /kareem/index.js:217:3)。:307:15) at /app/node_modules/mongoose/lib/model.js. at :400:5在/app/node_modules/mongoose/lib/model.js:324:11 at runMicrotasks ()
( 1.)orderLineItem模式:
let orderLineItemSchema = new mongodb.Schema({
orderId: { type: String, es_indexed: true },
name: { type: String, es_indexed: true },
description: { type: String, es_indexed: true },
privateNotice: { type: String, es_indexed: true },
netPrice: { type: String, default: 0, es_indexed: true },
taxPercent: { type: Number, default: 23, es_indexed: true },
projectFile: { type: projectFileSchema, es_schema: projectFileSchema, es_indexed: true, es_type: 'nested', es_include_in_parent: true },
component: { type: [componentSchema], es_indexed: true, es_type: 'nested', es_include_in_parent: true },
additionalFiles: { type: [projectFileSchema], es_indexed: true, es_type: 'nested', es_include_in_parent: true },
status: { type: orderLineItemStatusSchema, es_indexed: true },
accepted: { type: Boolean, default: false, es_indexed: true },
archived: { type: Boolean, default: false, es_indexed: true }
}, {
timestamps: true
});( 2.)projectFileSchema:
let projectFileSchema = new mongodb.Schema({
name: { type: String, es_indexed: true },
mimeType: { type: String, es_indexed: true },
path: { type: String, es_indexed: true },
archived: { type: Boolean, default: false, es_indexed: true }
});( 3.)组件模式:
let componentSchema = new mongodb.Schema({
name: { type: String, es_indexed: true },
category: { type: String, es_indexed: true },
componentId: { type: String, es_indexed: true },
symbol: { type: String, es_indexed: true },
archived: { type: Boolean, default: false, es_indexed: true }
});( 4.)orderLineItemStatusSchema:
let orderLineItemStatusSchema = new mongodb.Schema({
name: {
type: String,
default: 'Utworzony'
}
}, {
timestamps: true
});( 5.)我的同步代码:
const synchronize = (model) => {
let stream = model.synchronize();
stream.on('data', function(err, doc){
// Logging success to the console
});
stream.on('close', function(){
// Logging ...
});
stream.on('error', function(err){
console.log(err);
});
}
module.exports = synchronize;( 6.)下面是我如何使用它:
const mongodb = require('mongoose');
const mtastic = require('mongoosastic');
const esClient = require('../dependencies/elasticsearch');
const orderLineItemSchema = require('../schemas/OrderLineItem/OrderLineItem');
const synchronizer = require('../helpers/synchronizer'); // This is the synchronization function
orderLineItemSchema.plugin(mtastic, {
esClient: esClient
});
let OrderLineItem = mongodb.model('OrderLineItem', orderLineItemSchema);
let interval = setInterval(() => {
synchronizer(OrderLineItem);
}, 10000);
module.exports = OrderLineItem;这是完全相同的方式,我同步其他模型在我的应用程序,但只有这个返回的错误。
我怎么才能解决这个问题?
发布于 2021-03-22 23:49:57
https://stackoverflow.com/questions/66351012
复制相似问题