【问题标题】:Deep Query using MongoDB使用 MongoDB 进行深度查询
【发布时间】:2014-11-17 12:57:31
【问题描述】:

我试图找到这样的东西:

{
    "request": {
    "item": [
        NumberLong(392279374),
        NumberLong(392238484),
        NumberLong(392222298),
        NumberLong(392154783),
        NumberLong(392154349),
        NumberLong(392109059),
        NumberLong(392093297),
        NumberLong(392079037),
        NumberLong(391209132),
        NumberLong(390465588)
    ]
    }
}

如何查询“NumberLong(392154349)”? 谢谢。

【问题讨论】:

  • request.item[index of wanted value]

标签: arrays mongodb database


【解决方案1】:

首先您应该汇总您的数据,然后在汇总下方找到您的标准将有所帮助 mongo 文档结构为

db.item.findOne()
{
    "_id" : ObjectId("5469f1cbeb2d08494b4bff1e"),
    "request" : {
        "item" : [
            NumberLong(392279374),
            NumberLong(392238484),
            NumberLong(392222298),
            NumberLong(392154783),
            NumberLong(392154349),
            NumberLong(392109059),
            NumberLong(392093297),
            NumberLong(392079037),
            NumberLong(391209132),
            NumberLong(390465588)
        ]
    }
}

聚合查询为

db.item.aggregate({"$unwind":"$request.item"},
           {"$match":{"request.item":NumberLong(392154349)}})

【讨论】:

  • 好吧,我有“未捕获的异常”:聚合失败:{“errmsg”:“异常:$unwind:字段路径末尾的值必须是一个数组”
  • 是你的结构 ` "request": {"item": [ `like request inside array item 那么它可以正常工作,如果不是那么请用正确的文档格式编辑你的问题
  • 您能提供完整的查询吗?可能做错了什么。
  • 仍然,不知道我需要在 MongoDB 查询字段中输入什么? db.item.findOne() db.collectionName.aggregate() ?
  • 首先你将 mongo 插入为 db.item.insert({"request" : { "item" : [ NumberLong(392279374), NumberLong(392238484), NumberLong(392222298), NumberLong(392154783), NumberLong(392154349), NumberLong(392109059), NumberLong(392093297), NumberLong(392079037), NumberLong(391209132), NumberLong(390465588) ] }}) 然后 db.item.findOne() 之后使用 db.item.aggregate( ) 查询上面的查询
【解决方案2】:

嗯,答案很简单

db.item.finsSomething({"request.item":{$in:[number]}})

【讨论】:

  • 请解释您作为答案提供的代码。简单地发布代码不太可能充分回答提问者的问题。
  • 您有个人项目作为兼职工作吗?红宝石/Rails
猜你喜欢
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多