节点js mongoose不能包含'。'
问题描述:
我有一个问题,当我尝试创建一个新的电影,我得到节点js mongoose不能包含'。'
{ title: 'Dominion',
Dominion: 'https://upload.wikimedia.org/wikipedia/en/thumb/1/11/Dominion_-_Title_Card.png/250px-Dominion_-_Title_Card.png' } ]
Error: key Agents Of S.H.I.E.L.D. must not contain '.'
反正允许它有一个“”?
我的代码
Movie.create(movieObj, function(err, _){
console.log(err)
})
答
由于MongoDB的restrictions不能使用点符号和按键名称一美元的象征。 将用户数据保存为任何数据库(SQL或Schema-less)的关键字是一个坏主意。因为在将数据放入表/集合/等之前,您需要做大量准备工作。最主要的原因是索引和进一步阅读。
如果您真的想将用户数据保存为密钥,我想建议您使用哈希值。我的意思是你可以制作你的“$ uper Agents Of S.H.I.E.L.D.”的MD5哈希值。而不是把这个32b键放到你的文档中并用它来存储一些值。也许你会想保存电影的原始名称在关键“movie_title”中。我猜,这是一个更好的方法。
为什么你将标题用作关键字?键名应该是静态的。 – JohnnyHK
这是一个电影推荐的网站,所以我会找到所有常见的电影,电影x和电影y ect ..然后把他们两个共同的电影列入1列表,然后得到重复,把重复列表(他们的名称),然后我将使用重复列表来查找封面。如果你知道更好的办法,我可以改变它@JohnnyHK –
嗯...我不明白你在描述什么。你能否更新你的问题来提供一个完整的例子? – JohnnyHK