猫鼬在数组中查找子文档并更新

时间:2020-02-27 13:54:24

标签: node.js mongodb express mongoose

嗨,我有我无法解决的问题。 如果我没有_id或需要_id,如何查找和更新数组中的singel子文档? 如果我不需要_id,在这种情况下,如何在具有示例userId的数组中找到子文档并更新数据字段。

const listSchema = new mongoose.Schema({
  userId: {
    type: String,
    require: true
  }, 
   data1: { type: String },
   data2: { type: String }
});

const testSchema = new mongoose.Schema({
orderId: {
    type: Number,
    require: true
  },
list: [listSchema]
});

module.exports = mongoose.model("Test", testSchema);

我已经尝试过类似的方法,但是随后我获得了所有“列表” obj,而我却找不到如何获得单凝胶的方法 拥有UserId:1的“列表” obj

try {
 await Test.findOne({ orderId: OrderId },"list");
} catch (err) {
...
}

1 个答案:

答案 0 :(得分:0)

尝试一下:

'use strict';
module.exports = (sequelize, DataTypes) => {
  const CouponItemType = sequelize.define('CouponItemType', {
    coupon_id:DataTypes.BIGINT,
    item_type_id:DataTypes.SMALLINT,
    created_by: DataTypes.STRING,
    updated_by: DataTypes.STRING,
    created_on: DataTypes.DATE,
    updated_on: DataTypes.DATE
  }, {
    tableName: 'coupon_item_types'
  });
  CouponItemType.associate = function(models) {
    // associations can be defined here
  };
  return CouponItemType;
}

这里有更多有关如何查询子文档数组的详细信息:Link