mongodb比较查询操作符中英表格一览表
Name | Description | 功能 |
---|---|---|
$eq | Matches values that are equal to a specified value. | 匹配值等于指定值。 |
$gt | Matches values that are greater than a specified value. | 匹配值大于指定值。 |
$gte | Matches values that are greater than or equal to a specified value. | 匹配值大于等于指定值。 |
$in | Matches any of the values specified in an array. | 匹配数组中任意一个值。 |
$lt | Matches values that are less than a specified value. | 匹配值小于指定值。 |
$lte | Matches values that are less than or equal to a specified value. | 匹配值小于等于指定值。 |
$ne | Matches all values that are not equal to a specified value. | 匹配值不等于指定值。 |
$nin | Matches none of the values specified in an array. | 匹配数组中任意一个值都不匹配。 |
代码实例
const mongoose = require('mongoose');// 假设我们在运行代码的电脑已经安装MongoDB,现在链接MongoDB 数据库
//`mongodb://localhost:27017/testdb`这里是数据库地址,testdb 是数据库名称
mongoose.connect('mongodb://localhost:27017/testdb', { useNewUrlParser: true, useUnifiedTopology: true });// 定义 Product 模型
const productSchema = new mongoose.Schema({name: String,price: Number,category: String
});const Product = mongoose.model('Product', productSchema);// 示例数据插入
async function insertSampleData() {await Product.insertMany([{ name: 'Laptop', price: 999, category: 'Electronics' },{ name: 'Smartphone', price: 499, category: 'Electronics' },{ name: 'Coffee Maker', price: 89, category: 'Home Appliances' },{ name: 'Desk Chair', price: 150, category: 'Furniture' }]);
}// 查询示例
async function queryExamples() {// $eq - 匹配价格等于 999 的产品const eqProducts = await Product.find({ price: { $eq: 999 } });console.log('$eq:', eqProducts);// $gt - 匹配价格大于 100 的产品const gtProducts = await Product.find({ price: { $gt: 100 } });console.log('$gt:', gtProducts);// $gte - 匹配价格大于等于 150 的产品const gteProducts = await Product.find({ price: { $gte: 150 } });console.log('$gte:', gteProducts);// $in - 匹配类别在 ['Electronics', 'Furniture'] 中的产品const inProducts = await Product.find({ category: { $in: ['Electronics', 'Furniture'] } });console.log('$in:', inProducts);// $lt - 匹配价格小于 300 的产品const ltProducts = await Product.find({ price: { $lt: 300 } });console.log('$lt:', ltProducts);// $lte - 匹配价格小于等于 150 的产品const lteProducts = await Product.find({ price: { $lte: 150 } });console.log('$lte:', lteProducts);// $ne - 匹配价格不等于 89 的产品const neProducts = await Product.find({ price: { $ne: 89 } });console.log('$ne:', neProducts);// $nin - 匹配类别不在 ['Electronics', 'Home Appliances'] 中的产品const ninProducts = await Product.find({ category: { $nin: ['Electronics', 'Home Appliances'] } });console.log('$nin:', ninProducts);
}// 运行示例
(async () => {try {await insertSampleData();await queryExamples();mongoose.connection.close();} catch (error) {console.error(error);mongoose.connection.close();}
})();