Javascript 如何从mongoDB中的_ID数组连接文档数组

Javascript 如何从mongoDB中的_ID数组连接文档数组,javascript,node.js,arrays,reactjs,mongodb,Javascript,Node.js,Arrays,Reactjs,Mongodb,我在MongoDb中有一个文档,它有一个objectid数组。看起来像这样: --Shops Collection-- listing_ids: [ ObjectId("6092f741ccb0d55ba444883e"), ObjectId("6092f741ccb0d55ba444883f"), ObjectId("6092f741ccb0d55ba4448840"), ObjectId("6092f741ccb0d55

我在MongoDb中有一个文档,它有一个objectid数组。看起来像这样:

--Shops Collection--

listing_ids: [
ObjectId("6092f741ccb0d55ba444883e"),
ObjectId("6092f741ccb0d55ba444883f"),
ObjectId("6092f741ccb0d55ba4448840"),
ObjectId("6092f741ccb0d55ba4448841")
],
...
--Listings Collection--

_id: ObjectId("6092f741ccb0d55ba444883e"),
...
我有一份清单文件如下:

--Shops Collection--

listing_ids: [
ObjectId("6092f741ccb0d55ba444883e"),
ObjectId("6092f741ccb0d55ba444883f"),
ObjectId("6092f741ccb0d55ba4448840"),
ObjectId("6092f741ccb0d55ba4448841")
],
...
--Listings Collection--

_id: ObjectId("6092f741ccb0d55ba444883e"),
...
如何将listings文档加入到包含数组的shops文档中?我尝试了MonogoDb中的“$lookup”操作符,但无法使其工作。我总是被一个失败的不透明错误击中。这就是“$lookup”的外观:

const collection = client.db("development").collection("shops");

    const shop = await collection.aggregate([
      { 
        "$lookup": {
        "from": "listings",
        "localfield": "listing_ids",
        "foreignField": "_id",
        "as": "listings"
      }}
    ]).toArray();

这将返回所有商店文档以及名为
listings

的数组中相应的listings文档。事实证明,我几乎做对了。我最终使用了MongoDB Atlas聚合工具,它帮助了我。这是工作管道:

.aggregate([
        {
          '$lookup': {
            'from': 'listings', 
            'localField': 'listing_ids', 
            'foreignField': '_id', 
            'as': 'listings'
          }
        }, {
          '$lookup': {
            'from': 'listings', 
            'localField': 'highlightedListings', 
            'foreignField': '_id', 
            'as': 'highlightedListings'
          }
        }
      ]).toArray();