我想从单个集合中导出单个字段。
与集合名称一样,产品和字段名称是标记。
所有标签都将创建新的集合。我试过这个命令:
mongodump --host 192.168.1.46 --port 27017 --db myDb --collection products --fields tag -o bson --out C:\Users\Desktop\tag
答案 0 :(得分:1)
mongodump不支持所选字段的备份。但您可以使用mongoexport / mongoimport将所选字段备份为:
mongoexport -c test --db testing -f key --out dump.json
答案 1 :(得分:1)
所以我们首先将一些产品插入我们的产品系列:
db.products.insertMany([
{ name: 'TV', tags: ['livingroom', 'electronics']},
{ name: 'Radio', tags: ['bedroom', 'electronics']},
{ name: 'Computer', tags: ['bedroom', 'electronics']}
]);
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("586bae0ec5a9a94b2674943d"),
ObjectId("586bae0ec5a9a94b2674943e"),
ObjectId("586bae0ec5a9a94b2674943f")
]
}
我们现在可以编写一个简单的聚合查询来查看所有文档
db.products.aggregate([
{$unwind: '$tags'},
{$group: {_id: '$tags' }},
{$out: 'productTags'}
]);
{$unwind: '$tags'}
会将标签数组字段解构为每个标签的文档。
然后{$group: {_id: '$tags' }}
将对每个项目进行分组,并为每个标记创建一个新文档。
然后{$out: 'productTags'}
将为我们创建一个带有文档输出的productTags集合。
现在,如果我们查询productTags
集合,我们会得到以下输出:
> db.productTags.find()
{ "_id" : "bedroom" }
{ "_id" : "electronics" }
{ "_id" : "livingroom" }