gpt4 book ai didi

java - Mongodb 通过 Java 驱动程序通过聚合管道进行更新

转载 作者:行者123 更新时间:2023-12-01 18:12:46 26 4
gpt4 key购买 nike

Mongo DB 允许在更新操作中使用聚合管道。 https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/

我想使用 Kotlin/Java 驱动程序来实现这一点。我目前的情况我想将文档中的日期属性更改为字符串。不确定是否可以这样做,我在 Java 驱动程序文档中没有看到任何相关文档(ofc 下面的代码不起作用,这只是一个草案):

    fun changeProductLaunchDate(db: MongoDatabase) {
db.getCollection("productLine").updateMany(
and(
ne("products", null),
or(
type("products.launchDate", BsonType.DATE_TIME),
)
),
set(
"products.launchDate", Document(
"$dateToString", mapOf(
"date" to "\$products.launchDate",
"format" to "%d-%m-%Y",
"timezone" to "GMT",
"onNull" to null
)
)
)
)
}

有人有过这样的经历吗?任何建议都会有帮助。

最佳答案

这有效

        db.getCollection("groupProductLine").updateMany(
and(
ne("products", null),
or(
type("products.launchDate", BsonType.DATE_TIME)
)
),
listOf(
set(
"products.lLaunchDate",
Document(
"\$dateToString",
Document("date", "\$products.launchDate")
.append("format", "%d-%m-%Y")
.append("timezone", "+02:00")
.append("onNull", null)
)
)
)
)

关于java - Mongodb 通过 Java 驱动程序通过聚合管道进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60435408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com