Вложенный объект json в findOne () в Express и Mongoose - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующий код:

var product = await Product.findOne({$and:[
  { name: req.body.name },
  { extraData: [
    {brand: req.body.extraData.brand} ,
    {quantity: req.body.extraData.quantity},
    {typeOfQuantity: req.body.extraData.typeOfQuantity}]}
  ]});
if (product) res.status(400).send("Product already registered.");

Что я хотел бы сделать, это проверить, существует ли данный продукт с этими полями в базе данных, поэтому у меня нет нескольких одинаковых объектов, но у меня естьпроблема во вложенном объекте json.Приведенный выше код не работает и позволяет хранить в массиве несколько одинаковых продуктов.

Scema продукта:

const productSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
    minlength: 1,
    maxlength: 255
},
extraData: {
  type: extraDataSchema,
  required: true
}});

const extraDataSchema = new mongoose.Schema({
  brand: {
    type: String,
    required: true,
    minlength: 1,
    maxlength: 255
  },
  quantity: {
    type: Number,
    required: true,
    minlength: 1,
    maxlength: 10
  },
  typeOfQuantity: {
    type: String,
    required: true,
    minlength: 1,
    maxlength: 255
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...