猫鼬查询在对象数组中查找指定元素

时间:2019-02-25 09:33:56

标签: mongoose

我有这样的dbSchema

blockNumber: { type: Number },
transactions: [
{
blockHash: { type: String },
from: { type: String },
gas: { type: String },
gasPrice: { type: String },
hash: { type: String },
nonce: { type: String },
to: { type: String },
value: { type: String },
status: { type: String },
blockNumber: { type: Number },
tx_Fee: { type: String },
TimeStamp: {type: String},
}
]

1我如何找到哈希='某个值'的单个对象 2我如何找到所有交易对象

1 个答案:

答案 0 :(得分:0)

1对于下属查询,您需要使用点表示法。

Model.findOne({"transactions.hash": YOUR_HASH })

2您需要$ unwind和$ replaceRoot聚合。

Model.aggregate([
    {
        $unwind: "$transactions"
    },
    {
        $replaceRoot: { newRoot: "$transactions" }
    }
]);