Mongodb:如何在不知道字段名的情况下读取值?

时间:2016-05-03 18:01:42

标签: javascript mongodb field

我有一个系列" 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++;
}

你知道如何在不知道名字的情况下获得现场价值吗? 谢谢。

2 个答案:

答案 0 :(得分:3)

我不确定这是你真正想要的,但希望这有帮助。

试试这个:

$('#files').on('click', '.removeFile', function (event) {
    event.preventDefault();
    var fileUrl = $(this).data('file-url');
    if (confirm('Are you sure you want to delete this file?')){
        $.get('process.php', {'remove-file':fileUrl}, function(data){
            if(data=='true'){
                $(this).parent().fadeOut();
            } 
        });
    }
}); 

<li class="file">
<span class="file" data-file-url="http://demo.com/filemanager/files/test.txt" title="test.txt">test.txt</span>
<span class="removeFile" data-file-url="/files/test.txt"></span>
</li>

答案 1 :(得分:1)

感谢您的评论和解答! 我已经完成了我的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++;
}