MongoDB findOneAndUpdate 投影
MongoDB findOneAndUpdate projection
我目前正在使用 MongoDB 并使用 findOneAndUpdate
方法。我正在尝试使用投影,但它似乎并没有 100% 成功。
这是投影:
{
orderID: '$_id',
_id: false,
user: true,
guild: true,
order: true,
status: true,
orderExpiry: true,
priority: true,
sentAt: true
}
如您所见,我正在尝试将 orderID
设置为 _id
的值,但是它没有任何作用。
这是我正在执行的代码以供参考:
await this.db.collection('orders').findOneAndUpdate(filter, { $set: { ...data } },
{ returnOriginal: false, projection: this.getProjectionFields() });
希望有人能帮帮我,谢谢!
据我所知 .find()
或类似 .findOneAndUpdate()
的投影不支持聚合中的 $project
能够进行的字段转换(从现有字段中添加新字段)。所以投影可以用来在结果中包含或排除某些字段。虽然这是真的,但在某种程度上这是错误的,我们可以使用投影运算符转换数组字段,检查:projection.
我目前正在使用 MongoDB 并使用 findOneAndUpdate
方法。我正在尝试使用投影,但它似乎并没有 100% 成功。
这是投影:
{
orderID: '$_id',
_id: false,
user: true,
guild: true,
order: true,
status: true,
orderExpiry: true,
priority: true,
sentAt: true
}
如您所见,我正在尝试将 orderID
设置为 _id
的值,但是它没有任何作用。
这是我正在执行的代码以供参考:
await this.db.collection('orders').findOneAndUpdate(filter, { $set: { ...data } },
{ returnOriginal: false, projection: this.getProjectionFields() });
希望有人能帮帮我,谢谢!
据我所知 .find()
或类似 .findOneAndUpdate()
的投影不支持聚合中的 $project
能够进行的字段转换(从现有字段中添加新字段)。所以投影可以用来在结果中包含或排除某些字段。虽然这是真的,但在某种程度上这是错误的,我们可以使用投影运算符转换数组字段,检查:projection.