mongoexport(v2.6)使用

 mongoexport(v2.6)使用 



1. 插入测试数据
> use mydb;
switched to db mydb
> db.foo.insert({student : {name : "caoqing", age : 5}});
WriteResult({ "nInserted" : 1 })
> db.foo.insert({student : {name : "xiaobao", age : 10}});
WriteResult({ "nInserted" : 1 })
> db.foo.insert({student : {name : "caoqing", age : 50}});
WriteResult({ "nInserted" : 1 })
> db.foo.insert({student : {name : "caoqing", age : 500}});
WriteResult({ "nInserted" : 1 })

2. 查询结果
# mongo --eval 'db.getSiblingDB("mydb").foo.find({"student.name" : "caoqing"}).forEach(function(x) {printjson(x)})'
MongoDB shell version: 2.6.1
connecting to: test
{
        "_id" : ObjectId("53bdf37476f285fe0551b720"),
        "student" : {
                "name" : "caoqing",
                "age" : 5
        }
}
{
        "_id" : ObjectId("53bdf3b37e391662b46ca278"),
        "student" : {
                "name" : "caoqing",
                "age" : 50
        }
}
{
        "_id" : ObjectId("53bdf3b57e391662b46ca279"),
        "student" : {
                "name" : "caoqing",
                "age" : 500
        }
}

3. mongoexport导出数据测试

3.1 加入查询条件
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -o 1
connected to: 127.0.0.1
exported 3 records
# cat 1
{ "_id" : { "$oid" : "53bdf37476f285fe0551b720" }, "student" : { "name" : "caoqing", "age" : 5 } }
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }
{ "_id" : { "$oid" : "53bdf3b57e391662b46ca279" }, "student" : { "name" : "caoqing", "age" : 500 } }

3.2 加入查询条件并限定返回数目为2
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -o 1 --limit 2
connected to: 127.0.0.1
exported 2 records
# cat 1
{ "_id" : { "$oid" : "53bdf37476f285fe0551b720" }, "student" : { "name" : "caoqing", "age" : 5 } }
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }

3.3 加入查询条件并忽略数目1限定数目为2
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -o 1 --limit 2 --skip 1
connected to: 127.0.0.1
exported 2 records
# cat 1
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }
{ "_id" : { "$oid" : "53bdf3b57e391662b46ca279" }, "student" : { "name" : "caoqing", "age" : 500 } }

3.3 加入查询条件,并按照年龄排序,忽略数目1限定数目为2
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -o 1 --limit 2 --skip 1 --sort '{"student.age" : -1}'
connected to: 127.0.0.1
exported 2 records
# cat 1
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }
{ "_id" : { "$oid" : "53bdf37476f285fe0551b720" }, "student" : { "name" : "caoqing", "age" : 5 } }

3.4  加入查询条件,并按照年龄排序,忽略数目1限定数目为2,并且输出为json数组
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -o 1 --limit 2 --skip 1 --sort '{"student.age" : -1}' --jsonArray
connected to: 127.0.0.1
exported 2 records
# cat 1
[{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } },{ "_id" : { "$oid" : "53bdf37476f285fe0551b720" }, "student" : { "name" : "caoqing", "age" : 5 } }]

3.5 导出特定域值,会返回子文档的所有域值,而不只是指定的域
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' -f student.name,_id -o 2
connected to: 127.0.0.1
exported 3 records
[root@mongo02 mmsdb]# cat 2
{ "_id" : { "$oid" : "53bdf37476f285fe0551b720" }, "student" : { "name" : "caoqing", "age" : 5 } }
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }
{ "_id" : { "$oid" : "53bdf3b57e391662b46ca279" }, "student" : { "name" : "caoqing", "age" : 500 } }

3.6 导出特定域值为csv格式
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' --csv -f student.age,_id -o 2
connected to: 127.0.0.1
exported 3 records
[root@mongo02 mmsdb]# cat 2
student.age,_id
5.0,ObjectID(53bdf37476f285fe0551b720)
50.0,ObjectID(53bdf3b37e391662b46ca278)
500.0,ObjectID(53bdf3b57e391662b46ca279)

3.7 使用指定的域值文件,只支持csv格式导出
cat >> fieldfile.txt << EOF
student.name
student.age
_id
EOF
# mongoexport -dmydb -c foo -q '{"student.name" : "caoqing"}' --fieldFile fieldfile.txt --csv -o 2
connected to: 127.0.0.1
exported 3 records
[root@mongo02 mmsdb]# cat 2
student.name,student.age,_id
"caoqing",5.0,ObjectID(53bdf37476f285fe0551b720)
"caoqing",50.0,ObjectID(53bdf3b37e391662b46ca278)
"caoqing",500.0,ObjectID(53bdf3b57e391662b46ca279)

3.8 使用指定的域值文件,并且从文件中读取查询条件
echo {"student.name":"caoqing","student.age":{$gte:30}} > query.txt
# mongoexport -d mydb -c foo --query $(cat query.txt) -o 1
connected to: 127.0.0.1
exported 2 records
[root@mongo02 mmsdb]# cat 1
{ "_id" : { "$oid" : "53bdf3b37e391662b46ca278" }, "student" : { "name" : "caoqing", "age" : 50 } }
{ "_id" : { "$oid" : "53bdf3b57e391662b46ca279" }, "student" : { "name" : "caoqing", "age" : 500 } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值