我有一个系列" 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++;
}
你知道如何在不知道名字的情况下获得现场价值吗? 谢谢。
答案 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++;
}