gpt4 book ai didi

mongodb - 如何格式化 mongodb 查找查询的结果?

转载 作者:可可西里 更新时间:2023-11-01 09:12:30 25 4
gpt4 key购买 nike

我有一个以这种格式存储数据的集合:

{
_id: ObjectId("51b9be6dbbdeef1e5f008cca"),
name: 'sfdsfsdfsdfsdfsd'
details: {
varA: {
created: "2013-06-13T12:43:25.853Z",
validity: "2013-07-13T12:43:25.853Z",
modified: "2013-06-13T12:43:25.853Z"
},
varB: {
created: "2013-06-13T12:43:25.853Z",
validity: "2013-07-13T12:43:25.853Z",
modified: "2013-06-13T12:43:25.853Z"
}
}
}

我希望能够仅公开这种格式的 varA 数据(没有嵌套深度...):

{ 
_id: ObjectId("51b9be6dbbdeef1e5f008cca"),
name: 'sfdsfsdfsdfsdfsd',
created: "2013-06-13T12:43:25.853Z",
validity: "2013-07-13T12:43:25.853Z",
modified: "2013-06-13T12:43:25.853Z"
}

不幸的是,我的查询(我正在使用投影):

db.coll.find({}, {'details.varB': 0})

返回这样的东西:

{
_id: ObjectId("51b9be6dbbdeef1e5f008cca"),
name: 'sfdsfsdfsdfsdfsd',
details: {
varA: {
created: "2013-06-13T12:43:25.853Z",
validity: "2013-07-13T12:43:25.853Z",
modified: "2013-06-13T12:43:25.853Z"
}
}

如何改进查找查询以返回预期的格式?

非常感谢那些愿意帮助我的人 ;-)

附言在这里,我使用 mongo shell 来检索数据,但我需要让这个查询与 node.js 和 node-mongodb-native 一起工作。

最佳答案

如我的博文 here 中所述,我仅使用聚合函数完成了此操作

对于您的情况,这有效

db.temp.aggregate (
{
$project :
{
name:"$name",
created:"$details.varA.created",
validity:"$details.varA.validity",
modified:"$details.varA.modified"
}
}
);

db.temp.aggregate ({$project:{name:"$name",created:"$details.varA.created",validity:"$details.varA.validity",modified:"$details.varA.modified"}});

这是示例运行

> db.temp.insert ({name:'sfdsfsdfsdfsdfsd', details: { varA : { created: "2013-06-13T12:43:25.853Z", validity: "2013-07-13T12:43:25.853Z", modified: "2013-06-13T12:43:25.853Z"}, varB : { created: "2013-06-13T12:43:25.853Z", validity: "2013-07-13T12:43:25.853Z", modified: "2013-06-13T12:43:25.853Z" } } })
> db.temp.aggregate ({$project:{name:"$name",created:"$details.varA.created",validity:"$details.varA.validity",modified:"$details.varA.modified"}});
{
"result" : [
{
"_id" : ObjectId("51b9d7151723a9c4d6bc9936"),
"name" : "sfdsfsdfsdfsdfsd",
"created" : "2013-06-13T12:43:25.853Z",
"validity" : "2013-07-13T12:43:25.853Z",
"modified" : "2013-06-13T12:43:25.853Z"
}
],
"ok" : 1
}

关于mongodb - 如何格式化 mongodb 查找查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17088898/

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