如何将HTML插入到Mongodb中?

13
我在尝试粘贴HTML文本文件时,总是被强制退出shell。该如何解决?我需要先使用一些JavaScript进行编码吗?
示例:
db.test.insert({x:"<div id='product-description'><p>Who hasn’t wished for a mini-Roomba to    handle the arduous task of cleaning their iPhone screen? Now your dreams have come true!</p>  <p>See the Takara web page for a <a href='http://www.takaratomy.co.jp/products/automee/'  title='automee s' target='_blank'>demo video.</a></p>
<p><strong>Colors: </strong> White, Red, Orange and Blue<br>
Runs on a single AA battery.</p>
<p>1,575 yen</p><!-- end #product-description --></div>"})

编辑

我将html中的引号改成了单引号,并将整个内容用双引号包裹,但仍然不行。终端显示错误信息:

> j = ({z:"<div id='product-description'><p>Who hasn
---
Unicode text could not be correctly displayed.
Please change your console font to a Unicode font (e.g. Lucida Console).
---

’
bye

2
正如这个问题的格式清楚地显示的那样,您需要转义HTML实体... - Sammaye
我只有一对双引号!我以为这可能会解决问题,但不是。我需要转义什么?有没有一些标准函数? - ChatGPT
1
如果您不想关心引用问题,请使用base64编码/解码。 - user2665694
我读到过这样的话:“将HTML文件作为标准的UTF-8编码字符串存储在MongoDB中是完全可以的。”但我仍然找不到实际操作的方法。https://groups.google.com/d/msg/mongodb-user/0m8KJ7mPWiQ/n_Gx2qf1-TEJ - ChatGPT
4
确保将引用的字符串粘贴到shell中时没有任何换行符。如果有换行符,它将无法工作。 - WiredPrairie
4个回答

9

1
这对我没有起作用。基本上,HTML 从 mongo 中呈现为文本,而不是作为 HTML(例如:我想要 <div>hi!</div> 在 HTML div 中呈现为“hi!”,但它呈现为“<div>hi!</div>”)。 - Deborah

3

rompetroll提供了一些很好的参考资料,让您可以开始着手解决问题。我也在网上找到了一个不错的解决方案,可以正常工作:

链接

但是,我认为仍然存在一些关于“从数据库中将html显示回浏览器”的困惑。因此,以下是消除这种困惑的步骤:

第1步:将html存储在mongodb中

Mongo以对象形式存储所有内容。基本上,将您的html转换为utf-8或ASCII编译的字符串,然后将其存储到mongo中。

<div>hi!</div> [from]

&lt;div&gt;hi!&lt;/div&gt; [to UTF-8]

步骤二:将html显示到浏览器

这一步是有些人感到困惑的源头。人们经常忘记在将字符串显示到浏览器之前将其转换回html。 您必须使用与编码相同的方法解码您的html

&lt;div&gt;hi!&lt;/div&gt; [output from mongo (decode it to html)]

<div>hi!</div> [browser output of above string]

(浏览器会将其读取为字符串并以原样显示,而不是HTML(hi!),因此需要解码)

我提供的链接中提供了这两个步骤的参考。

希望这能帮到你:

干杯:)


0

在MongoDB控制台中添加HTML,您需要转义字符串。 使用此方法:https://www.freeformatter.com/json-escape.html#ad-output

步骤

  • 复制HTML
  • 转到上面的链接,粘贴HTML,点击“转义”
  • 复制已转义的HTML
  • 插入HTML(例如:db.Emails.updateMany({name: 'email/seller'}, {$set: {template: "<!DOCTYPE html\">\r\n<html lang=\"en\"> ..."}}

0
使用compass,您不需要进行编码。Studio3T编辑器也可以使用,但您需要许可证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接