这是MongoDB中完整文档的一个实例
{
"_id" : ObjectId("5b1aa3f960600928d831f9a3"),
"username" : "chemaP",
"password" : BinData(0,"JDJiJDEyJFFzazBpcmIwSmZRRkttVC5NQVM3d3VzUEFDMVpwR2llYXdnVTJ3dk9mUnh3dFUyOHp3bVYu"),
"nombre" : "chema",
"apellidos" : "Rocha",
"email" : "xemarr@gmail.com",
"premium" : false,
"admin" : true,
"documents" : [
{
"_id" : ObjectId("5b1aa40660600928d831f9a4"),
"filename" : "Alatriste",
"status" : "analyzed",
"viewed" : false,
"uploadDate" : "08-06-2018 17:43:02",
"metrics" : [
{
"npunctuation" : 6,
"N_words" : 6,
"N_lfw" : 6,
"N_cw" : 6
}
],
"analysisDate" : "08-06-2018 18:00:17"
}
注意,指标被列为一系列指标,可以添加更多具有相同指标的列表,我不介意,我只需要一个列表。
后来,当使用flask_admin-contrib.pymongo时,文件的外观&子文档就是这个。
我不会将指标显示为嵌套的指标数组,换句话说,我想删除右边的“x”和相应的“添加指标”按钮。
以下是我的admin.py文件中的代码,该文件具有后端视图。
from flask_admin.contrib.pymongo import ModelView, filters
from flask_admin.model.fields import InlineFormField, InlineFieldList
class MetricsForm(form.Form):
npunctuation = fields.FloatField(
'Punctuation marks', [validators.Optional()])
N_words = fields.FloatField('Words', [validators.Optional()])
N_lfw = fields.FloatField('N_lfw', [validators.Optional()])
N_cw = fields.FloatField('cw', [validators.Optional()])
class DocumentForm(form.Form):
filename = fields.StringField('filename')
status = fields.StringField('status')
viewed = fields.StringField('viewed')
metrics = InlineFieldList(InlineFormField(MetricsForm))
我发现没有办法以嵌套数组之外的任何其他方式插入指标,我不希望这样,既不是“$ set”也不是“$ push”,也没办法将其转换为“非阵列”将显示在后端。