gpt4 book ai didi

MongoDB 从数组中查找键等于字符串的位置

转载 作者:可可西里 更新时间:2023-11-01 09:11:02 27 4
gpt4 key购买 nike

我试图在一个集合中找到所有具有给定键等于数组中的字符串之一的文档。

这是该集合的示例。

{
roomId = 'room1',
name = 'first'
},
{
roomId = 'room2',
name = 'second'
},
{
roomId = 'room3',
name = 'third'
}

下面是要查看的数组示例。

[ 'room2', 'room3' ]

我认为可行的是...

collection.find({ roomId : { $in : [ 'room2', 'room3' ]}}, function( e, r )
{
// r should return the second and third room
});

我怎样才能做到这一点?

解决这个问题的一种方法是执行 for 循环...

var roomIds = [ 'room2', 'room3' ];
for ( var i=0; i < roomIds.length; i++ )
{
collection.find({ id : roomIds[ i ]})
}

但这并不理想....

最佳答案

您发布的内容应该有效 - 无需循环。 $in运算符(operator)完成工作:

> db.Room.insert({ "_id" : 1, name: 'first'});
> db.Room.insert({ "_id" : 2, name: 'second'});
> db.Room.insert({ "_id" : 3, name: 'third'});
> // test w/ int
> db.Room.find({ "_id" : { $in : [1, 2] }});
{ "_id" : 1, "name" : "first" }
{ "_id" : 2, "name" : "second" }
> // test w/ strings
> db.Room.find({ "name" : { $in : ['first', 'third'] }});
{ "_id" : 1, "name" : "first" }
{ "_id" : 3, "name" : "third" }

这不是你所期望的吗?

使用 MongoDB 2.1.1 测试

关于MongoDB 从数组中查找键等于字符串的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com