node.js如何删除数组子文档的元素?

JavaScript015

node.js如何删除数组子文档的元素?,第1张

node.js中删除monogodb数组子文档使用$pull关键词。

1、Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。

2、Node.js可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件轮询(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。

实现代码如下:

var filter = {_id: suggestID}

var update = {$pull: {replies: {rid:opts.doc.rid}}}

return opts.dbs.csdb.collection("suggests").findOneAndUpdateAsync(filter, update, {upsert: false})

这是大部分文档的基本格式,中括号内的东西代表可选项,可以填也可以不填

类似的还有 | 符号表示或,即可以填这个,也可以填那个,比如

color:inherit | transparent | <color-value>| <color-keyword>

上面用<>包起来的表示某种类型的值,很多编程语言也是这样(模板类)

类似的还有

foo(a,[b=3])

表示如果你不传第二个参数,则第二个参数b的默认值为3

然后 | 以及 [] 可以组合使用

[]也可以嵌套使用,比如

bar(a[,b[,c]])

就表示如果填了b,则可以可选的传入c

但如果b都没传,c也不能传

不过讲真这东西我一时还真想不出来哪里正式的介绍过,毕竟不同的地方语法还是稍有差异

Node.js 文档建议使用 fs 模块并自己完成读取文件和解析的工作。

这种方法比起我们接下来用的第二种方法更容易理解。

我们还可以使用 createRequire 加载 JSON 文件。

createRequire 允许您构造 CommonJS require 方法,以便可以使用典型的 CommonJS 功能,例如在 Node.js 中读取 JSON ES 模块。

前两种的区别:

JSON 模块已经存在于 Chrome 91,它看起来就像一个 ES Modules 风格的导入,只是你在最后设置了类型。

当 Chrome 中有解决方案时,它很快就会在 Node.js 中发布。