Nodejs 从 Mongo 中获取不包括匹配字段数组值的提取值
Nodejs Get fetch values excluding matching field array value from Mongo
如何在 Nodejs 中进行查找以获取不包括给定 ID 的值。
{"_id":
{"$oid": "1"},
"image_name": "img1.jpg",
"price": 120,
"user": [{
"$oid": "userid1"
}],
"category": [{
"$oid": "cat1"
}]
"__v": 1
}
{"_id":
{"$oid": "2"},
"image_name": "img2.jpg",
"price": 120,
"user": [{
"$oid": "userid2"
}],
"category": [{
"$oid": "cat2"
}]
"__v": 1
}
{"_id":
{"$oid": "3"},
"image_name": "img3.jpg",
"price": 120,
"user": [{
"$oid": "userid3"
}],
"category": [{
"$oid": "cat3"
}]
"__v": 1
}
例如,如果用户 ID 为 2,我想排除 ID 为 2 的用户并获取所有其他数据。喜欢
{"_id":
{"$oid": "1"},
"image_name": "img1.jpg",
"price": 120,
"user": [{
"$oid": "userid1"
}],
"category": [{
"$oid": "cat1"
}]
"__v": 1
}
{"_id":
{"$oid": "3"},
"image_name": "img3.jpg",
"price": 120,
"user": [{
"$oid": "userid3"
}],
"category": [{
"$oid": "cat3"
}]
"__v": 1
}
同上。请帮忙。我尝试了 $expr, $not, $in
方法,但它返回一个错误,即
val[key] = val[key].map(v => _castExpression(v, schema, strictQuery)); TypeError: val[key].map 不是函数
编辑:
下面是我尝试并得到上述错误的代码
app.get("/get-images", (req, res) => {
image
.find(
{
$expr: {
$not: {
$in: [{
_id: req.query.userId
}]
}
}
}
)
.populate("user")
.populate("category")
.then((img) => {
res.status(200).send(img);
});
});
试试这个
image.find({
_id: { $ne: req.query.userId }
})
$ne
会给你所有_id
不等于给定值的文档。
如何在 Nodejs 中进行查找以获取不包括给定 ID 的值。
{"_id":
{"$oid": "1"},
"image_name": "img1.jpg",
"price": 120,
"user": [{
"$oid": "userid1"
}],
"category": [{
"$oid": "cat1"
}]
"__v": 1
}
{"_id":
{"$oid": "2"},
"image_name": "img2.jpg",
"price": 120,
"user": [{
"$oid": "userid2"
}],
"category": [{
"$oid": "cat2"
}]
"__v": 1
}
{"_id":
{"$oid": "3"},
"image_name": "img3.jpg",
"price": 120,
"user": [{
"$oid": "userid3"
}],
"category": [{
"$oid": "cat3"
}]
"__v": 1
}
例如,如果用户 ID 为 2,我想排除 ID 为 2 的用户并获取所有其他数据。喜欢
{"_id":
{"$oid": "1"},
"image_name": "img1.jpg",
"price": 120,
"user": [{
"$oid": "userid1"
}],
"category": [{
"$oid": "cat1"
}]
"__v": 1
}
{"_id":
{"$oid": "3"},
"image_name": "img3.jpg",
"price": 120,
"user": [{
"$oid": "userid3"
}],
"category": [{
"$oid": "cat3"
}]
"__v": 1
}
同上。请帮忙。我尝试了 $expr, $not, $in
方法,但它返回一个错误,即
val[key] = val[key].map(v => _castExpression(v, schema, strictQuery)); TypeError: val[key].map 不是函数
编辑: 下面是我尝试并得到上述错误的代码
app.get("/get-images", (req, res) => {
image
.find(
{
$expr: {
$not: {
$in: [{
_id: req.query.userId
}]
}
}
}
)
.populate("user")
.populate("category")
.then((img) => {
res.status(200).send(img);
});
});
试试这个
image.find({
_id: { $ne: req.query.userId }
})
$ne
会给你所有_id
不等于给定值的文档。