Javascript 这种奇怪的搜索模式(解构)在MongoDB中是如何工作的?

Javascript 这种奇怪的搜索模式(解构)在MongoDB中是如何工作的?,javascript,node.js,mongodb,ecmascript-6,promise,Javascript,Node.js,Mongodb,Ecmascript 6,Promise,在mongo发布之后,我看到了一些引起我注意的东西(lookthen()method) 我知道在mongoose对象中有一个db属性,下面有两三个级别的databaseName,这就是我在本例中想要的 我的问题: 是ECMAScript 2015还是什么黑黑客 它叫什么名字。尝试了一段时间后,不知道如何找到它 谢谢你你看到的是东西,不是物体 它说的是: 将参数传递给。然后() 查找该对象上的db属性 进一步分解db以查找其中的databaseName属性 将databaseName提升到当

在mongo发布之后,我看到了一些引起我注意的东西(look
then()
method)

我知道在
mongoose
对象中有一个
db
属性,下面有两三个级别的
databaseName
,这就是我在本例中想要的

我的问题

  • 是ECMAScript 2015还是什么黑黑客
  • 它叫什么名字。尝试了一段时间后,不知道如何找到它
谢谢你

你看到的是东西,不是物体

它说的是:

  • 将参数传递给
    。然后()
  • 查找该对象上的
    db
    属性
  • 进一步分解
    db
    以查找其中的
    databaseName
    属性
  • databaseName
    提升到当前范围(在本例中为您的功能范围)
最深的解构变量将在当前范围内可用。下面是一个例子:

让{db:{databaseName}}={db:{databaseName:'ding'}
//现在databaseName在当前范围内可用
console.log(数据库名)

//打印“叮”
如果您不理解代码,请使用进行传输,直到语法更加清晰。非常感谢。这就是我要找的名字。加洛曼达:我确实明白,但我想学习这个新的咒语;)。这将是我的周末计划。非常强大
// connect to mongo, use Mongo Client
mongoose.connect(MONGO_URI, {useMongoClient: true})
  .then(({db: {databaseName}}) => console.log(`Connected to ${databaseName}`))
  .catch(err => console.error(err));