我有一个软件文档,其中包含_id、类别、品牌等领域。有一个价格字段,它的类型是string。有些文档的价格无效或为空。我想使用聚合管道,这样价格是>=4和<=8,并将价格转换为双倍。还有一个我想成为>=10的日期字段,我也想使用$out来创建这个文档的一个新集合。到目前为止,我已经这样做了,我想知道是否有人能让我知道如何检索文档,但我不想丢失或更改其他字段,只有价格和日期。
db.sw.aggregate([{$match: {}},
{$project: {priceLen: {"$strLenCP": "$price"}}},
{"$match": {priceLen: {"$gte": 4, "$lte": 8}}},
{$project: {price: {$trim: {input: "$price", chars: "$"}}}},
{$project: {price: {$toDouble: "$price"}}}]) 我对$match的思考过程是检索所有字段。任何帮助都是非常感谢的。
发布于 2022-03-10 21:45:27
不知道你的要求在“正确”方面是什么。
$project删除了所有字段(除了_id)并填充给定的字段。如果您希望保留现有字段,请使用$set或别名$addFields来命名实际操作。
https://stackoverflow.com/questions/71429557
复制相似问题