如何解决无法查询嵌套的猫鼬数组?
我想使用正则表达式和 mongoose (mongoDB) 模型查询和数组。
我想在 Productmodel 的嵌套数组中搜索:
const productSchema = new schema(
{
name: requiredString,sku: requiredUniqueNumber,ean: requiredUniqueNumber,suppliers: [{ type: mongoose.Schema.Types.ObjectId,ref: SupplierModel }],categories: [{ type: mongoose.Schema.Types.ObjectId,ref: CategoryModel }],mainImage: requiredString,images: [{ type: String }],description: requiredString,stock: requiredNumber,price: requiredNumber,totalOrders: requiredNumber,reviews: [review],},{
timestamps: true,count: true,}
);
“suppliers”数组里面的模型是:
const supplierSchema = new schema(
{
supplierName: requiredUniqueString,invoiceAddress: address,visitAddress: address,status: supplierStatusEnum,contacts: address,accountType: accountTypeEnum,logo: requiredString,user: { type: schema.Types.ObjectId,ref: "products" },}
);
现在问题来了,如果我查询 and 和 populate()
我得到所有结果。但出于某种原因,我无法在包含多个供应商的数组中进行搜索。这是我所拥有的:
foundProducts = await ProductModel.find({
$or: [
{
name: {
$regex: regex,{
"suppliers.supplierName": {
$regex: regex,{
description: {
$regex: regex,],});
如果他发现供应商模型包含正则表达式,他应该返回包含该供应商的整个产品模型。
在嵌套数组中搜索所有项目的最佳方法是什么。
ps。我是一名来自 PostgreSQL 的初级开发人员,所以当我尝试这个 noSQL“东西”时,请和我一起裸露:)
解决方法
我做错了查询。我需要做
{
"suppliers._id": {
$regex: regex,},
我只能搜索_id,因为这是我“建模”它的方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。