MongoDB:如何查找与指定列表共享列表元素的文档

我目前正在使用mongoose模式,其中一些值保存列表。 例如:

var dinerSchema = mongoose.Schema({ restaurants: [String] }); 

我正在寻找一种方法来编写一个mongo查询,查找其中至less有一个共享元素在这两个值之间的其他文档。 例如,如果我给了一个餐馆的名单是

 [McDonalds, Burger King, Wendy's] 

我想find其他有餐厅价值的文件,例如

 [Sonic, Taco Bell, Burger King] 

但不是

  [Red Lobster, Olive Garden, Legal Sea Foods] 

我知道,如果我想find一个单一的价值的文件,我可以做类似的事情

 dinerModel.find({ restaurants: "McDonalds" }, ...); 

将所有含有麦当劳的文件归还其餐厅名单。 但是,我想find任何包含任何列表中的元素的文档。 有没有办法来查询这个? 我不认为我可以只是做“或”查询,因为我不知道我要查找的餐馆列表的大小,它可能会改变查询。

谢谢!

使用$ in子句进行查找:

 dinerModel.find({ 'restaurants': { $in: [ 'Sonic', 'Taco Bell', 'Burger King' ]} }, function(err, docs){ if (err) { console.log(err); // deal somehow return; } console.log(docs); } });