Node.js 从MongoDB高效查询数组列表数据的正确方法是什么?
对这个很陌生!假设我有这个文件:Node.js 从MongoDB高效查询数组列表数据的正确方法是什么?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,对这个很陌生!假设我有这个文件: { "_id" : ObjectId("00000000000000000"), "keyArray" : [ { "name" : "Miche", "score" : 0, "gender": "M", "group&
{
"_id" : ObjectId("00000000000000000"),
"keyArray" : [
{
"name" : "Miche",
"score" : 0,
"gender": "M",
"group" : "A"
},
{
"name" : "kim",
"score" : -1,
"gender": "F",
"group" : "B"
},
{
"name" : "john",
"score" : 1,
"gender": "M",
"group" : "A"
}
],
"key" : "value",
"key" : "value",
...
}
如何只列出keyArray
中的所有数据而不显示其他键
db.users.find({},{u id:0,keyArray:{$elemMatch:{group:{group:“A”}}}}})
(这将只显示第一项)
我想从keyArray
查询所有列表数据,而不使用$elemMatch
{
"name" : "Miche",
"score" : 0,
"gender": "M",
"group" : "A"
},
{
"name" : "kim",
"score" : -1,
"gender": "F",
"group" : "A"
},
{
"name" : "john",
"score" : 1,
"gender": "M",
"group" : "A"
}
那么,从分数<0的数组中查询和删除项目的正确方法是什么
.findOneAndDelete( where { users.keyArray.score: { "score" : -1 }} )
.update( { }, { $pull: { keyArray.score: -1 } }, { multi: true } )
需要一些帮助来显示解决方法。仅从mongoDB获取某些指定字段的方法
db.users.find({}, {keyArray:true})
这将只返回keyArray数据。如果需要,可以添加更多字段,通过这种方式
db.users.find({}, {field1:true, field2:true, field3:true})
如有必要,还可以使用findOne({})
对于删除/更新数组中的某些指定字段/文档,对于您的情况,此官方文档将帮助您了解从mongoDB仅获取某些指定字段的详细信息
db.users.find({}, {keyArray:true})
这将只返回keyArray数据。如果需要,可以添加更多字段,通过这种方式
db.users.find({}, {field1:true, field2:true, field3:true})
如有必要,还可以使用findOne({})
对于删除/更新数组中的某些指定字段/文档,对于您的情况,此官方文档将帮助您了解详细信息db.users.find({},{keyArray:true})将仅返回keyArraydata@theTradeCoder你能告诉我更多关于按分数删除项目的信息吗?在这里你可以找到一个基于分数删除的解决方案,@theTradeCoder:post这是OP可以接受的答案..db.users.find({},{keyArray:true})将仅返回keyArraydata@theTradeCoder你能告诉我更多关于按分数删除项目的信息吗?在这里你可以找到一个基于分数删除项目的解决方案,@theTradeCoder:将此作为OP可以接受的答案发布..干杯!谢谢你的帮助,干杯!谢谢你的帮助。