代码之家  ›  专栏  ›  技术社区  ›  the_darkside

MongoDB中嵌入的符号

  •  0
  • the_darkside  · 技术社区  · 7 年前

    我对查询MongoDB还不熟悉,但在过滤存在某些符号的对象时遇到了困难。例如:

    engine 结构如下:

    {
        "_id" : ObjectId("5c3a5efa6b0526729490cb2f"),
        "imsi" : "12345",
        "class_name" : "foo",
        "decoded_payload" : {
            "timestamp" : 1547329260,
            "lock_status" : "LOCKED"
        },
        "direction" : "in",
        "created_at" : ISODate("2019-01-12T21:41:14.998Z")
    }
    

    我的目标是得到 imsi 是12345,包含 decoded_payload lock_status (锁定状态为 符号

    查询运行,但返回零结果(尽管有许多对象应该返回)。我想知道是否有语法错误是因为 锁定状态 是symbol类型。这里可能有什么错误?

    我的问题:

    db.getCollection('engine').find({
    
    $and: [
    
        {"decoded_payload":{
        $exists: true,
        $elemMatch: {"lock_status":{$exists:true} } 
            }
        },
    
        {"imsi": "12345"}
    
    
        ]})
    .sort({"decoded_payload.timestamp":-1}) 
    
    0 回复  |  直到 7 年前
        1
  •  1
  •   Mani    7 年前

    db.getCollection('engine')
    .find({"imsi": "12345", "decoded_payload": {$exists: true}, "decoded_payload.lock_status":{$exists:true}})
    .sort({"decoded_payload.timestamp":-1}) 
    
    推荐文章