mongo:从a获取一个属性

时间:2013-06-13 11:52:12

标签: php mongodb shell

在mongo shell或PHP中 如何检索此文档的“列表”属性?

{
"_id" : ObjectId("51b972ebe4b075a9690bbc5b"),
"list" : [
"Environnement",
"Toutes thématiques",
"Transports"]
}

我正在寻找怎么做 db.tags.list将返回mycollection中文档的所有'list'属性

答案是: db.tags.findOne()。表

2 个答案:

答案 0 :(得分:0)

如果您想直接访问您的文档:

document['list']

如果您正在访问集合:

db.collection.findOne({_id: ObjectId("51b972ebe4b075a9690bbc5b")}).list

答案 1 :(得分:0)

如果您需要list集合中所有文档中的所有tags属性,您可能需要使用db.collection.find()方法({{3在PHP)。

$tags = array();

foreach ($collection->find() as $document) {
    if (empty($document['list'] || ! is_array($document['list'])) {
        continue;
    }

    foreach ($document['list'] as $tag) {
        $tags[] = $tag;
    }
}

另外,如果这些文档包含您不需要的其他字段,则可以使用第二个参数向find()提供投影并限制返回的字段。在这种情况下,{ list: 1 }会这样做。

更进一步,如果您想快速检索集合文档中list字段的所有唯一标记,可以使用MongoCollection::find()数据库命令(distinct用PHP。

假设该收藏品有以下文件:

> db.foo.insert({x:['a','b','c']})
> db.foo.insert({x:['a','c','d']})

以下方法将执行distinct数据库命令并返回数组[ "a", "b", "c", "d" ]

$uniqueTags = $collection->distinct('list');