gpt4 book ai didi

node.js - Mongodb子字段选择

转载 作者:可可西里 更新时间:2023-11-01 09:31:48 26 4
gpt4 key购买 nike

您好,我有以下数据库:

a busy cat

我的问题是如何“SELECT name FROM posts Where thread=Sloan”

因为我正在尝试进入 RockMongo shell:“db.users.find({"posts.thread":'Sloan'})”但它返回所有集合数据

***** 使用 json-generator.com ********************

[
'{{repeat(5, 7)}}',
{
id: '{{index}}',
group: '{{surname}}',
name: '{{firstName}} {{surname}}',

posts: [
'{{repeat(25)}}',
{
thread:'{{surname}}',
sb:[
'{{repeat(100)}}',
{
id: '{{index}}',
name: '{{firstName}} {{surname}}'

}
]
}
],

users:[
'{{repeat(25)}}',
{
name:'{{firstName}}'
}]


}
]

最佳答案

稍微澄清一下...如果你有一个像这样的数据库:

enter image description here

然后如果你执行 db.users.find({ posts: { $elemMatch: { thread: "Sloan"} } }),你会得到这个(每个元素帖子都包括在内):

enter image description here

如果你这样做 db.users.find({"posts.thread":'Sloan'},{'posts.$':1}),你会得到这个(只包括相关的帖子):

enter image description here

(顺便说一句,它执行起来更快......如果你在 posts.thread 上添加索引,它会更快。)

最后一件事,我认为这可能会产生误导。 db.users.find({ posts: { $elemMatch: { thread: "Sloan"} } }, { name: 1 }) 投影将给出元素名称“gloria sharpe”,但是来 self 从这个问题中了解到,他更愿意获得名称 post.thread.sb.name。这就是为什么他只想将相关帖子作为答案,而不是该元素的所有帖子。

关于node.js - Mongodb子字段选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287603/

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