Mongodb: 如何在不知道字段名的情况下读取值?
Mongodb: how to read value without knowing field name?
我有一个集合 "A",其中包含文档:
{_id:1, a1: "degree"}
{_id:2, a2: "score"} ...
我需要将该集合转换为键值结构,例如:
{_id: x, {name: "a1", label: "degree"} }
{_id: y, {name: "a2", label: "score"} }
问题是集合 A 中的每个文档都可以有不同的字段名称。
要获取字段名称,我可以使用 javascript,如下所示,
但是仍然无法在不知道字段名称的情况下找到获取每个字段值的方法。
var arr = new Array()
var x = 0
var cur = db."A".find()
while( cur.hasNext() ) {
var i = 0
for( var field in cur[x] ) {
arr[i] = field; // get field name
i++;}
db."B".save( { "name": arr[1], //fieldname
"label": //how to put value without knowing field name?
)
x++;
}
你知道如何在不知道名称的情况下获取字段值吗?
谢谢。
我不确定这是否是您真正想要的,但希望对您有所帮助。
试试这个:
var obj = [
{_id: x, {name: "a1", label: "degree"} },
{_id: y, {name: "a2", label: "score"} }
];
for (index in obj) {
for (key in obj[index]) {
console.log(key);
console.log(obj[index][key]);
}
}
感谢评论和回答!
我已经完成了我的 javascript 代码如下:
var arr = new Array()
var x = 0
var cur = db.A.find()
while( cur.hasNext() ) {
var i = 0
for( var field in cur[x] ) {
arr[i] = field; // get field name
print( "field name="+ field);
print( "the value="+cur[x][field] );
i++;
}
x++;
}
我有一个集合 "A",其中包含文档:
{_id:1, a1: "degree"}
{_id:2, a2: "score"} ...
我需要将该集合转换为键值结构,例如:
{_id: x, {name: "a1", label: "degree"} }
{_id: y, {name: "a2", label: "score"} }
问题是集合 A 中的每个文档都可以有不同的字段名称。
要获取字段名称,我可以使用 javascript,如下所示,
但是仍然无法在不知道字段名称的情况下找到获取每个字段值的方法。
var arr = new Array()
var x = 0
var cur = db."A".find()
while( cur.hasNext() ) {
var i = 0
for( var field in cur[x] ) {
arr[i] = field; // get field name
i++;}
db."B".save( { "name": arr[1], //fieldname
"label": //how to put value without knowing field name?
)
x++;
}
你知道如何在不知道名称的情况下获取字段值吗?
谢谢。
我不确定这是否是您真正想要的,但希望对您有所帮助。
试试这个:
var obj = [
{_id: x, {name: "a1", label: "degree"} },
{_id: y, {name: "a2", label: "score"} }
];
for (index in obj) {
for (key in obj[index]) {
console.log(key);
console.log(obj[index][key]);
}
}
感谢评论和回答! 我已经完成了我的 javascript 代码如下:
var arr = new Array()
var x = 0
var cur = db.A.find()
while( cur.hasNext() ) {
var i = 0
for( var field in cur[x] ) {
arr[i] = field; // get field name
print( "field name="+ field);
print( "the value="+cur[x][field] );
i++;
}
x++;
}