小编Gau*_*av 的帖子

为什么 mongoose 中需要 execPopulate 方法来填充现有文档?

我知道它的语法及其工作原理,但我无法理解内部工作原理,为什么方法链接一次需要另一种方法,但其他时候不需要?

这段代码工作正常

const cart = await Carts.findById(cartId).populate('product');
Run Code Online (Sandbox Code Playgroud)

但这段代码并没有

let cart = await Carts.findById(cartId);
cart = await cart.populate('product');
Run Code Online (Sandbox Code Playgroud)

为了让它发挥作用,我们使用execPopulate这样的方法。

let cart = await Carts.findById(cartId);
cart = await cart.populate('product').execPopulate();
Run Code Online (Sandbox Code Playgroud)

现在,据我读过 javascript 中的方法链接,代码在没有该execPopulate方法的情况下也应该运行良好。但我似乎无法理解为什么 populate 不适用于现有的猫鼬对象。

mongoose mongodb node.js mongoose-populate

3
推荐指数
1
解决办法
6922
查看次数

shell 脚本中的“for i”和“for i in 1 2 3 4”有什么区别?

我不得不在不同的行上打印在 shell 脚本中解析的所有参数。我写了一个脚本

for i in 1 2 3 4 5
do
   echo $i
done
Run Code Online (Sandbox Code Playgroud)

但这打印

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

即使我将参数解析为“10 20 30 40 50”

和互联网上的一个代码

for i
do
   echo $i
done
Run Code Online (Sandbox Code Playgroud)

此代码正确打印参数。

有人可以解释一下为什么该代码有效但我的无效吗?

另外,我如何使用一个变量 ($i) 的值作为变量名来打印其他内容。喜欢

i=1
$($i)
Run Code Online (Sandbox Code Playgroud)

应该打印 $1 的值。

bash shell scripting ubuntu

1
推荐指数
1
解决办法
3446
查看次数