몽고db /schema 얻기 / schema 몽고 / mongo schema 스키마 / aggregation 을 변수에 넣기 / how to assign aggregation result to the variable
mongodb 에서 collection schema 만드는 query
monogdb 에서는 js 로 query 를 작성하기 용이하다. 그래서 collection 에서 schema 를 출력해주는 query 를 만들어 봤다.
- 가정: 모든 document 는 같은 schema 를 가지고 있다.
function _getType(coll, fieldName){
var ret = coll.aggregate([
{$limit: 1},
{ "$project": {
_id:0,
"fieldType": { "$type": `$${fieldName}` }
} }
]).toArray()[0]
return ret
}
//------------------------------------
//
// Main
//
//------------------------------------
// var colls = ["app",
// "mycollection1",
// "mycollection2",
// ]
var colls = db.getCollectionNames()
var curDB = db.getSiblingDB("test")
colls.map(function (collname, i){
// get index
var idxInfo = curDB[collname].getIndices()
// get schema
var schemaInfo = ''
var schematodo = curDB[collname].findOne()
var i = 0
for (var key in schematodo) {
var ftype = _getType(curDB[collname], key)
schemaInfo += ` ${key} : "${ftype['fieldType']}",\n`
}
// print
print(`collection: "${collname}:"\nindex: ${JSON.stringify(idxInfo)}\nschema: {\n${schemaInfo}\n}`)
})
댓글 없음:
댓글 쓰기