节点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) 
         }) 
+0

为什么你将标题用作关键字?键名应该是静态的。 – JohnnyHK

+0

这是一个电影推荐的网站,所以我会找到所有常见的电影,电影x和电影y ect ..然后把他们两个共同的电影列入1列表,然后得到重复,把重复列表(他们的名称),然后我将使用重复列表来查找封面。如果你知道更好的办法,我可以改变它@JohnnyHK –

+0

嗯...我不明白你在描述什么。你能否更新你的问题来提供一个完整的例子? – JohnnyHK

由于MongoDB的restrictions不能使用点符号和按键名称一美元的象征。 将用户数据保存为任何数据库(SQL或Schema-less)的关键字是一个坏主意。因为在将数据放入表/集合/等之前,您需要做大量准备工作。最主要的原因是索引和进一步阅读。

如果您真的想将用户数据保存为密钥,我想建议您使用哈希值。我的意思是你可以制作你的“$ uper Agents Of S.H.I.E.L.D.”的MD5哈希值。而不是把这个32b键放到你的文档中并用它来存储一些值。也许你会想保存电影的原始名称在关键“movie_title”中。我猜,这是一个更好的方法。