gpt4 book ai didi

node.js - Mongoosastic 插件不更新嵌套对象

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:34 25 4
gpt4 key购买 nike

所以该项目由下一个堆栈组成,NodeJS、Express、Mongodb、ElasticSearch。为了对 Elasticsearch 建立索引,我们使用插件 mongoosastic。

我有以下模型,它们之间具有 1:M 关系,每当我更新组时,我希望该组也在用户对象中更新。因此,如果我更新组,它只会在 ElasticSearch 的组索引中更新,而不会在用户索引中更新。但是,如果我再次更新用户,组对象就会正确实现。它应该与 es_type 和 es_include_in_parent 相关,但无论如何都不起作用。

const UserSchema: mongoose.Schema = new mongoose.Schema({
email: String,
password: String,
group: {
type: mongoose.Schema.Types.ObjectId,
ref: 'groups',
es_indexed: true,
es_type: 'nested',
es_include_in_parent: true
}
}, { timestamps: true } as SchemaOptions);

UserSchema.plugin(mongoosastic, {..elasticSearchConfig,
index: 'users',
populate: [
{path: 'group', model: 'groups'}
]}
);
export const UserModel = mongoose.model('users', UserSchema, 'users');

export const GroupSchema: mongoose.Schema = extendBaseSchema(new mongoose.Schema({
name: { type: String, es_indexed: true },
web: { type: String, es_indexed: true },
users: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'users',
es_indexed: true,
es_type: 'nested',
es_include_in_parent: true
}
],
}));

GroupSchema.plugin(mongoosastic, {...elasticSearchConfig,
index: 'groups'
});
export const GroupModel = mongoose.model('groups', GroupSchema, 'groups');

提前致谢!

最佳答案

添加参数es_schema,例如应该可以解决你的问题。

es_schema:User.schema 

关于node.js - Mongoosastic 插件不更新嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717000/

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