删除数组mongodb的一部分

金斯普

嗨,我很想删除第一个值之后的任何内容,例如

采集:{

"_id' :.....
"UrlId" : "5dfc1aa2986b7c30f3398be4",
    "coverInput" : 
           [
            "https://test.com/s/files/1/00351576213050",
            "https://test.com.au"
           ],

}

我要替换的文档是:

采集:{

"_id' :.....
"UrlId" : "5dfc1aa2986b7c30f3398be4",
    "coverInput" : 
           [
            "https://test.com/s/files/1/00351576213050"
           ],

}

我确定这很简单。我尝试了这个,但是出现了一个错误:

db.test.aggregate([
{
    $addFields: {
        coverInput: { $substr: [ "$coverInput", 0, { $indexOfBytes: [ "$coverInput", "," ] } ] }
    }
}
]).forEach( doc => db.test.updateOne( { _id: doc._id }, { $set: { coverInput: doc.coverInput } } ) )

提前致谢!

阿什

您可以使用以下汇总

db.collection.aggregate([
  { "$project": {
    "coverInput": {
      "$slice": ["$coverInput", 1]
    }
  }}
])

或者,如果您想更新文档

db.test.updateOne(
  { _id: doc._id },
  [{
    $set: { coverInput: { "$slice": ["$coverInput", 1] } }
  }]
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章