node.js 中 MongoDB find 查询 字段的值 在 数组中的所有文档 返回指定字段
时间: 2024-05-14 13:14:14 浏览: 171
MongoDB如何对数组中的元素进行查询详解
可以使用 MongoDB 的 $in 操作符来查询字段的值在一个数组中的所有文档,并返回指定字段。在 Node.js 中,可以使用官方的 MongoDB 驱动程序来实现这一操作。
下面是一个示例代码,假设有一个名为 "users" 的集合,其中包含一个名为 "tags" 的数组字段,需要查询所有 "tags" 中包含 "node.js" 的文档,并返回它们的 "name" 和 "email" 字段:
```javascript
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@<cluster>/<database>?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(async err => {
const collection = client.db("test").collection("users");
// 查询所有 "tags" 中包含 "node.js" 的文档,并返回它们的 "name" 和 "email" 字段
const result = await collection.find({ tags: { $in: ['node.js'] } }, { projection: { name: 1, email: 1, _id: 0 } }).toArray();
console.log(result);
client.close();
});
```
在上面的代码中,使用了 MongoDB 的 $in 操作符来查询 "tags" 中包含 "node.js" 的文档。使用 projection 参数来指定只返回 "name" 和 "email" 字段,而不返回默认的 "_id" 字段。最后使用 toArray() 方法将查询结果转换为数组并进行输出。
阅读全文