在 MongoDB 中查詢陣列中至少一項不在另一個數組中的文件?


為此,在 MongoDB find() 中設定正則表示式。讓我們建立一個帶有文件的集合 -

> db.demo228.insertOne({"Subjects":["MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fa51f03d395bdc213473b")
}
> db.demo228.insertOne({"Subjects":["MongoDB","Java","MySQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fa52c03d395bdc213473c")
}

使用 find() 方法從集合中顯示所有文件 -

> db.demo228.find();

這將產生以下輸出 -

{ "_id" : ObjectId("5e3fa51f03d395bdc213473b"), "Subjects" : [ "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

以下是查詢陣列中至少一項不在另一個數組中的文件的查詢 -

> db.demo228.find({ "Subjects": /^(?!MongoDB|Java)/ });

這將產生以下輸出 -

{ "_id" : ObjectId("5e3fa52c03d395bdc213473c"), "Subjects" : [ "MongoDB", "Java", "MySQL" ] }

更新於:30-Mar-2020

120 次瀏覽

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告