在mongo shell或PHP中 如何检索此文档的“列表”属性?
{
"_id" : ObjectId("51b972ebe4b075a9690bbc5b"),
"list" : [
"Environnement",
"Toutes thématiques",
"Transports"]
}
我正在寻找怎么做 db.tags.list将返回mycollection中文档的所有'list'属性
答案是: db.tags.findOne()。表
答案 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');