- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 Mongoose 来检查我的数据库中是否存在某个元素。
为此,我正在使用类似的东西-
object.aggregate([
{$match: {
"data": {
$elemMatch: {
$and:[
{name: {$in: ["A", "B"]}},
{name: {$nin: ["X"]}}
]
}
}
}
}
])
问题是文本是数组。因此,当我得到 ["A", "X"] 时,我希望结果为空。
你有什么想法吗?
------------ 编辑------------
对象看起来像:
example1 = { // shouldn't find - not in $in
_id: "123",
data: [
{id:"1",name:"E"},
{id:"2",name:"R"},
{id:"3",name:"T"}
]
}
example2 = { // shouldn't find - in both $in $nin
_id: "456",
data: [
{id:"4",name:"A"},
{id:"5",name:"X"},
{id:"6",name:"Z"}
]
}
example3 = { // should find - only in $in
_id: "789",
data: [
{id:"7",name:"A"},
{id:"8",name:"L"},
{id:"9",name:"Z"}
]
}
------------ 编辑 2 ----------
感谢@Anthony 帮我找到一个更好的例子来解决这个问题。
我认为这个问题发生在数组的数组中,例如:
数据集
[
{
_id: "456",
data: [
{
field: [
{
id: "1",
name: "A"
},
{
id: "2",
name: "B"
},
{
id: "3",
name: "Z"
}
]
},
{
field: [
{
id: "4",
name: "A"
},
{
id: "5",
name: "X"
},
{
id: "6",
name: "Z"
}
]
}
]
}
]
我的元素匹配解决方案有 2 个文档:( enter link description here )
db.collection.aggregate([
{
$match: {
data: {
$elemMatch: {
"$and": [
{
"field.name": {
"$in": [
"A",
"B"
]
}
},
{
"field.name": {
"$nin": [
"X"
]
}
}
]
}
}
}
}
])
建议的其他解决方案返回 0 个文档:( enter link description here )
db.collection.find({
"$and": [
{
"data.field.name": {
"$in": [
"A",
"B"
]
}
},
{
"data.field.name": {
"$nin": [
"X"
]
}
}
]
})
最佳答案
你可以用简单的查找查询来试试这个
db.collection.find({
"data": {
"$elemMatch": {
"$and": [
{ "field.name": { "$in": [ "A", "B" ] } },
{ "field.name": { "$nin": [ "X" ] } }
]
}
}
}, {
"data": {
"$elemMatch": {
"$and": [
{ "field.name": { "$in": [ "A", "B" ] } },
{ "field.name": { "$nin": [ "X" ] } }
]
}
}
})
试一试 here
关于javascript - Mongoose $elemMatch 如何同时查询 $in 和 $nin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682082/
有没有人使用过 C# .Net MongoDB Driver FilterDefinitionBuilder's not in filter?这是我放在一起的一个简单示例,但我似乎无法开始工作。假设我
如果我的模式有一个像这样的嵌入式文档: location: { coordinates: [-41.588221, 71.123812], unitNumber: '4a',
我正在使用 MongoDB 2.6.7,我正在尝试运行以下查询 Categories.find({'_id': { $nin: ancestors }}) 其中 Categories 集合与 Mong
我有一个如下所示的 mongo 文档; { "_id": "123", "name": "ABC", "elements": { "_id": "123",
我有一个查询来查找用户 CreatedBy 是否在 SharedWith 中。我想反转查询以检查 CreatedBy 是否不在 SharedWith 中。 [ { "$matc
我在使用 NEDB find() 查询结构时遇到问题。 下面的 find() 查询应该返回所有新消息:发送到指定的 email 或 All 组,但尚未发送通过指定的 email 阅读或发送。 但是,它
我有 2 个集合,我正在尝试从 Coll_A 获取所有记录其中 Field1 中不存在某个字段 ( Coll_B ) . 我遇到的问题是这个Field1在Coll_A包含一个字符串值,在末尾用空格填充
我有一个函数应该返回在给定时间段内创建的用户数以及受邀者和未受邀者的分组。在 $cond 运算符上,我需要比较字段 tkbSponsor 是否不是 null 并且不等于 example@example
我有一个像这样的用户架构 const userSchema= new mongoose.Schema({ Username:{ type:String, trim:true
使用 Mongoose 操作过滤用户(管理员)。 他需要查看所有已保存的文件...除了草稿文件.. 但他应该能够再次看到自己保存的草稿文件... 代码: filter = { '_id':
mongodb 中有非严格的 $nin 版本吗?例如 假设我们有一个名为“用户”的模型和一个名为“任务”的模型 var TaskSchema = new Schema({ user_array
我的 transactions 集合中有以下文档。 {txnId: 1, amount: 200, tags:["monthly", "recharge"]}, {txnId: 2, amount:
我正在使用 Mongoose 来检查我的数据库中是否存在某个元素。 为此,我正在使用类似的东西- object.aggregate([ {$match: {
我正在使用 Pymongo 对文件名列表执行一个简单的查询: db.FileAssets.find({'filename': {'$nin': filenames}}}) 但是,查询抛出 Docume
我有一个 mongodb,其中包含一个包含音乐排行榜上的每首歌曲的集合。我写了一个脚本,它接受我想要的歌曲数量以及我想要随机选择歌曲的年份的输入。到目前为止一切顺利。 但是,我试图做到这一点,因为返回
我对这个答案进行了高估和低估,但没有任何效果。我有一个管道查询,其匹配项如下: $match: { $expr: { $and: [ .... ] } } 在 $a
我想通过在属性上使用 $or 来实现 $sum 和 $cond: db.collectionName.aggregate( { "$group": { "_id":'$created_
所以我有一些node.js代码,其中有一些用于mongodb的$in和$nin id。 “$nin”列表实际上比“$in”列表大得多。 在“我的实现”中,我用“简单的方法”做到了这一点,将两个 ids
我正在使用 Nodejs、mongodb 数据库。我们可以像这样使用 $nin Model.find({ uname : { $nin : ["sachin","saurav"] } }.... un
我是一名优秀的程序员,十分优秀!