现在我正在使用 mongoDB ,并且仅根据数据类型限制面对基本错误“
InvalidDocument:文档必须只有字符串键,键是('好','有益')
我尝试过的行动如下:
在jupyter-notebook中使用以下命令
import pymongo
from pymongo import MongoClient
client = MongoClient() #to run the mongod instance we need a client to run it
db = client['glot'] #we connect to 'test-database' with the pre-defined client instance
collection = db['usr_history']
edge_attr = {('good','beneficial'):"good is beneficial", ('beneficial','supportive'):"beneficial means something supportive"} #create this with glat_algo
usr_history = {"nodes": ['good', 'beneficial', 'supportive'], "edges": [('good', 'beneficial'), ('beneficial', 'supportive')], "rephrase": edge_attr}
collection.insert_one(usr_history)
,最后一个命令返回错误,如上所述。
基本上我要做的是将(vertex,edge,edge_attr)数据存储到任何数据库中,这样我就可以跟踪大量的usr_history数据,以便使用python进行分析。
我不仅限于mongoDB,所以你可以给我一个指南或解决方案,不仅可以使用mongoDB,还可以使用其他替代方案。
非常感谢你。
答案 0 :(得分:0)
您不能使用非字符串值作为键;只有字符串可以是键。
如果将('good','beneficial')
存储为单独属性的值,它会更好用,可能是这样的:
edge_attr = [
{"attr" : ('good','beneficial'), "val" : "good is beneficial"},
{"attr" : ('beneficial','supportive'), "val" : "beneficial means something supportive"}
];