gpt4 book ai didi

mongodb - 聚合 : Project dotted field doesn't seem to work

转载 作者:可可西里 更新时间:2023-11-01 10:05:13 25 4
gpt4 key购买 nike

我有一个包含此文档的数据库:

{"_id":{"$id":"xxx"},"duration":{"sec":137,"usec":0},"name":"test"}

如果我使用此管道调用 db.collection.aggregate:

{$project:{_id: 0, name: 1, duration: 1, seconds: "$duration.sec"}}

我得到这个结果:

{"result":[{"duration":{"sec":137,"usec":0},"name":"test"}],"ok":1}

为什么结果没有“秒”字段?我使用了错误的投影语法吗?

我不完全确定服务器运行的 mongodb 版本。我将 1.3.1 php 驱动程序与 php 5.4.3 一起使用,但服务器可能比这更旧 - 大约半年?

最佳答案

根据 $project 上的 MongoDB 文档:

You may also use $project to rename fields. Consider the following example:

db.article.aggregate(
{ $project : {
title : 1 ,
page_views : "$pageViews" ,
bar : "$other.foo"
}} );

This operation renames the pageViews field to page_views, and renames the foo field in the other sub-document as the top-level field bar.

这个例子似乎与您正在尝试做的事情非常吻合。

我知道 10gen 正式发布了带有 MongoDB v2.2 的聚合框架。查看current production release ,我认为是 2.2.3。如果您在之前的开发版本上运行,聚合可能会发生一些奇怪的事情。

关于mongodb - 聚合 : Project dotted field doesn't seem to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393018/

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