首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB中嵌套文档的查询问题

MongoDB中嵌套文档的查询问题
EN

Stack Overflow用户
提问于 2022-04-12 09:05:33
回答 2查看 76关注 0票数 0

我想得到价格和日期的信息,并发送到ejs之间的两个具体日期和名称。

我的第一份文件是这样的,我有很多。例如,我想要2022-4-1和2022-4-6之间的所有比特币信息。如果没有嵌套,它就能工作,但在这种情况下,我做不到。

代码语言:javascript
复制
{
   "_id" : ObjectId("62175a6dd2b42d83134288f0"),
   "result" : [ 
       {
           "name" : "Bitcoin",
           "symbol" : "BTC",
           "price" : 45488.969940933,
           "date" : "2022-4-1",
           "time" : "16:25:22",
           "active" : 1
       }, 
       {
           "name" : "Ethereum",
           "symbol" : "ETH",
           "price" : 3328.61487109438,
           "date" : "2022-4-1",
           "time" : "16:25:22",
           "active" : 1
       }, 
   //..and goes to 100
      
   ]
}

我试过了

代码语言:javascript
复制
dbo.collection("info").find({ result : {name:"Bitcoin"}, date: { $gte: "2022-4-1", $lte: "2022-4-6" }.toArray //Getting an empty []
dbo.collection("info").find({ 'result.name' :"Bitcoin"}).toArray //Getting all of documents in the DB.
dbo.collection("info").find({"result": { $elemMatch:{"name": "Bitcoin"}}}).toArray //Same as above.

我也尝试过没有.toArray和findOne,没有什么改变。非常感谢。

第一个对象的完整JSON是https://pastebin.com/06V4upPY

EN

回答 2

Stack Overflow用户

发布于 2022-04-12 09:23:51

代码语言:javascript
复制
db.collection.find({
  result: {
    $elemMatch: {
      name: "Bitcoin",
      date: {
        $gte: "2022-4-1",
        $lte: "2022-4-6"
      }
    }
  }
},
{
  "result.$": 1
})

蒙古操场

票数 0
EN

Stack Overflow用户

发布于 2022-04-12 09:26:34

第二个和第三个查询返回所有文档是正常的,因为如果所有文档在结果数组中都有一个比特币元素,那么它将返回文档。

$elemMatch运算符将包含数组字段的文档与至少一个匹配所有指定查询条件的元素匹配。

源$elemMatch (查询)文档

为了只过滤比特币元素,您必须在投影部分中使用$elemMatch,如下所示:

代码语言:javascript
复制
dbo.collection("info").find({ 
  'result.name' :"Bitcoin"
}, 
{
  'result': {
      $elemMatch: {
         "name": "Bitcoin" 
      }
   }
)

MongoPlayground

$elemMatch运算符限制查询结果中字段的内容。

资料来源:$elemMatch (投影) doc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71839895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档