Nodejs mongoose sub поиск документов - PullRequest
0 голосов
/ 23 марта 2019

У меня есть схема типа

const propertiesSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    shortDescription: String,
    totalArea: String,
    address: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "Address",
        required: true
    }
})

и схема адреса вот так

const addressSchema = new Schema({
    addressLine1: {
        type:String,
        required:false
    },
    addressLine2: {
        type:String,
        required:false
    },
    city:{
        type:mongoose.Schema.Types.ObjectId,
        required:true,
        ref:"City"
    }
})

, и я хочу найти город из propertiesSchema, использую mongoose для mongodb.а также у меня есть необязательный объект searchData, такой как

searchData = {
    "name":"test"
    "city":"5c8f7f178dec7c20f4783c0d"
}

, здесь идентификатор города может быть нулевым, и мне нужно, если идентификатор города не нулевой, тогда нужно только искать город на propertiesSchema.Пожалуйста, помогите решить эту проблему.спасибо ..

1 Ответ

0 голосов
/ 29 марта 2019

Поскольку city - это вложенный объект, который можно запросить, например

.

"address.city"

Eg: 

searchData = {
    "name":"test"
    "address.city":"5c8f7f178dec7c20f4783c0d"
}

UPDATE

'5c8f7f178dec7c20f4783c0d' - это строка. Вы должны использовать

const mongoose = require('mongoose');
mongoose.Types.ObjectId('5c8f7f178dec7c20f4783c0d');
...