gpt4 book ai didi

mongodb - mongo-在投影期间转换一个字段的字段值以创建日期时间

转载 作者:可可西里 更新时间:2023-11-01 10:29:03 27 4
gpt4 key购买 nike

我正在使用 mongodb agregate 框架,这就是我的普通对象的样子

{
"_id" : "6b109972c9bd9d16a09b70b96686f691bfe2f9b6",
"history" : [
{
"dtEntry" : 1428929906,
"type" : "I",
"refname" : "ref1"
},
{
"dtEntry" : 1429082064,
"type" : "U",
"refname" : "ref1"
}
],
"c" : "SomeVal",
"p" : "anotherVal"
}

这里的 history.dtEntry 是一个纪元值(请不要建议我在进入这里之前将其更改为 isodate,这超出了我的范围)。我想将 c、p history.type 和 history.dtEntry 投影为(月中的某天)。

db.mydataset.aggregate({$project:{c:1,p:1,type:"$history.type",DtEntry:"$history.dtEntry",dater:{$dayOfMonth:new Date(DtEntry)}}})

如果我直接使用任何纪元值,那么月份的日期就可以了,但是我必须传递 dtEntry 的值,而且这两种方法似乎都不适合我我试过了

$dayOfMonth:new Date(DtEntry)
$dayOfMonth:new Date(history.DtEntry)
$dayOfMonth:new Date("history.DtEntry")
$dayOfMonth:new Date("$history.DtEntry")

最佳答案

我发现其他一些方法可能对您有帮助,请查看下面的聚合查询

db.collectionName.aggregate({
"$unwind": "$history"
}, {
"$project": {
"c": 1,
"p": 1,
"type": "$history.type",
"dater": {
"$dayOfMonth": {
"$add": [new Date(0), {
"$multiply": ["$history.dtEntry", 1000]
}]
}
}
}
})

关于mongodb - mongo-在投影期间转换一个字段的字段值以创建日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29764630/

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