如何将 HTML 插入 Mongodb?

Posted

技术标签:

【中文标题】如何将 HTML 插入 Mongodb?【英文标题】:How do I insert HTML into Mongodb? 【发布时间】:2013-02-22 21:52:43 【问题描述】:

当我尝试粘贴 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

【问题讨论】:

正如这个问题的格式清楚地表明,您需要转义 HTML 实体... 我只有一对双引号!我认为这可能会解决它,但没有。我需要什么逃跑以及如何逃跑?有一些标准功能吗? 如果您根本不想关心引用问题,请使用 base64 编码/解码。 我读到“将 html 文件作为标准 utf-8 编码字符串存储在 MongoDB 中非常好。”但我仍然找不到任何方法来真正做到这一点。 groups.google.com/d/msg/mongodb-user/0m8KJ7mPWiQ/n_Gx2qf1-TEJ 确保您粘贴到 shell 的引用字符串中没有任何换行符。有的话就不行了。 【参考方案1】:

您需要删除或编码字符串中的控制字符。

例如,将您的文本粘贴到 here,然后编码为 UTF-8 ECMAScript(即 javascript 字符串)。

ps:这里有一篇关于 javascript 中的字符串的文章。告诉你什么需要转义。 http://docstore.mik.ua/orelly/webprog/jscript/ch03_02.htm

【讨论】:

这对我不起作用。本质上,HTML 在 mongo 中呈现为文本,而不是 HTML(例如:我希望 hi! 在 HTML div 中呈现为“hi!”,但它呈现为“hi !".【参考方案2】:

rompetroll 提供了一些很好的入门参考。我也在网上找到了一个很好的解决方案,效果很好:

Link

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

第一步:在mongodb中存储html

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

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

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

第 2 步:向浏览器显示 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!),因此需要解码)

Link 我提供的这两个步骤都有参考。

希望这会有所帮助

干杯:)

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

要通过 MongoDB 控制台添加 html,您需要对字符串进行转义。 使用这个:https://www.freeformatter.com/json-escape.html#ad-output

步骤

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

【讨论】:

以上是关于如何将 HTML 插入 Mongodb?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个对象插入到mongo数组中的另一个对象中

将对象数组插入 MongoDB

MongoDB: CURD操作

使用 geojson 和 mongoose 将多边形坐标插入 Mongo DB 时出错

python 读取Json文件并插入Mongodb #mongo #python

跨多个集合的 Mongodb 批量插入