MongoDB Shell-向现有字段中的所有文档添加新字段
我想为集合中的所有现有文档创建一个TTL,我们在所有文档中都有一个字符串类型的字段-MongoDB Shell-向现有字段中的所有文档添加新字段,mongodb,mongodb-query,Mongodb,Mongodb Query,我想为集合中的所有现有文档创建一个TTL,我们在所有文档中都有一个字符串类型的字段-“OrigDate”:“2020-03-24” 现在,我想在此字段的基础上添加另一个字段“updatedAt”,我在mongo shell中尝试了以下内容,但没有成功- db.SHOP.update( {}, { $set:{ "updatedAt": { "$toDate": "$OrigDate"} } }, false,
“OrigDate”:“2020-03-24”
现在,我想在此字段的基础上添加另一个字段“updatedAt”,我在mongo shell中尝试了以下内容,但没有成功-
db.SHOP.update(
{},
{
$set:{
"updatedAt": { "$toDate": "$OrigDate"}
}
},
false,
true
)
这会出现以下异常情况-“updatedAt.$toDate”中以美元($)为前缀的字段“$toDate”对存储无效
请帮助使用聚合从现有字段值生成新字段,然后将其更新到集合。必须使用聚合引用集合文档中的现有字段
db.test.aggregate( [
{ $addFields: { updatedAt: { "$toDate": "$OrigDate"} } }
] ).forEach( doc => db.test.updateOne( { _id: doc._id }, { $set: { updatedAt: doc.updatedAt } } ) )
以下更新接受聚合管道以指定要应用于集合文档的修改:。注意:此功能仅适用于MongoDB 4.2版或更高版本
db.test.updateMany(
{ },
[
{ $set: { updatedAt: { "$toDate": "$OrigDate"} } }
]
)
使用聚合从现有字段值生成新字段,然后将其更新到集合。必须使用聚合引用集合文档中的现有字段
db.test.aggregate( [
{ $addFields: { updatedAt: { "$toDate": "$OrigDate"} } }
] ).forEach( doc => db.test.updateOne( { _id: doc._id }, { $set: { updatedAt: doc.updatedAt } } ) )
以下更新接受聚合管道以指定要应用于集合文档的修改:。注意:此功能仅适用于MongoDB 4.2版或更高版本
db.test.updateMany(
{ },
[
{ $set: { updatedAt: { "$toDate": "$OrigDate"} } }
]
)
在
updatedAt
中,是否要存储当前日期或任何其他精确日期?我要使用字符串类型的“OrigDate”项中可用的数据。我想使用$toDate()将其转换为日期。您必须使用聚合来引用现有字段。如果您使用的是MongoDB 4.2版,则可以在update
方法中使用聚合。在updatedAt
中,您想存储当前日期或任何其他精确日期吗?我想使用字符串类型的“OrigDate”项中可用的数据。我想使用$toDate()将其转换为日期。您必须使用聚合来引用现有字段。如果您使用的是MongoDB 4.2版,那么可以在update
方法中使用聚合。