如何用同一元素中的另一个字段更新数组元素中的字段?

问题描述 投票:0回答:0
import mongoose from 'mongoose'

const holderSchema = new mongoose.Schema(
    {
        walletId: {
            type: String,
            required: true,
            unique: true,
        },
        solBalance: {
            type: Number,
            default: 0,
            min: 0,
        },
        liquidityPools: [
            {
                collectionId: {
                    type: mongoose.Schema.Types.ObjectId,
                    required: true,
                },
                lpTokens: {
                    type: Number,
                    required: true,
                    min: 0,
                },
                feeEarned: {
                    type: Number,
                    default: 0,
                    min: 0,
                },
                isActive: {
                    type: Boolean,
                    default: true,
                },
            },
        ],
    },
    { timestamps: true }
)

export default mongoose.models.Holder || mongoose.model('Holder', holderSchema)

在这个模型中我怎么能做这样的事情 - liquidityPools.feeEarned += liquidityPools.lpTokens /100 所有文档的数组元素 liquidityPools.collectionId 为 5

await Holder.updateMany(
                        { 'liquidityPools.collectionId': collectionId, 'liquidityPools.isActive': true },
                        {
                            $inc: {
                                'liquidityPools.$[elem].feeEarned': {
                                    $multiply: [
                                        'elem.lpTokens',100
                                    ],
                                },
                            },
                        }
                    )
                 })`

这是我尝试过的方法,但在 $inc 中使用 $multiple 似乎不起作用。

mongodb mongoose mongoose-schema
© www.soinside.com 2019 - 2024. All rights reserved.