在mongoDB中查询嵌套文档

时间:2011-09-22 09:57:24

标签: perl mongodb

我想查询我的Mongodb集合(名称:包装器)并检索所有包含以'.com'结尾的字段'urls'的文档。

我不确定如何查询嵌套文档以及如何使用正则表达式进行查询。

我实际上是用perl编写的。但是,在mongo shell上运行的查询也没问题。

提前致谢!

示例数据:

{ "_id" : ObjectId("4e7a34932cd4b16704000000"), "lastArray" : { "desc" : "google", "url" : "google.com", "data" : [
    {
        "name" : "1",
        "xpath" : [ ],
        "nodes" : [ ],
        "type" : "Any Text"
    },
    {
        "name" : "2",
        "xpath" : [ ],
        "nodes" : [ ],
        "type" : "Any Text"
    }



{ "_id" : ObjectId("4e7a34932cd4b16704000001"), "lastArray" : { "desc" : "yahoo", "url" : "yahoo.com", "data" : [
    {
        "name" : "1",
        "xpath" : [ ],
        "nodes" : [ ],
        "type" : "Any Text"
    },
    {
        "name" : "2",
        "xpath" : [ ],
        "nodes" : [ ],
        "type" : "Any Text"
    }

2 个答案:

答案 0 :(得分:6)

db.wrappers.find({"lastArray.url":{$regex:/\.com$/}});

答案 1 :(得分:0)

我不是100%确定你是否可以使用正则表达式来搜索子文档属性,或者你是否因为性能原因而想要。在这种情况下,添加“tld”属性并执行完全匹配查询可能更容易。像这样的东西{“lastArray.tld”:“com”}