相关疑难解决方法(0)

mongodb:查询以检查数组中的项目是否包含特定字符串

我有一个包含products以下项目的集合

[
  { 
    name: 'Product 1'
    images: ['http://staging.example.com/1', 'http://production.example.com/2'],
    ... 
  },
  { 
    name: 'Product 2'
    images: ['http://production.example.com/3'],
    ... 
  }
]
Run Code Online (Sandbox Code Playgroud)

我想找到数组staging中包含字符串的文档images

我尝试了一些方法,例如使用 $contains 但 mongo 抛出错误,说我不能将 $contains 与数组一起使用。

arrays mongodb

5
推荐指数
1
解决办法
5798
查看次数

从Node.js中查询MongoDB中的like

如何使用Node.js在MongoDB中进行类似的查询?

这是我的源代码,但它不起作用:

exports.findAll = function(req, res) {
    var country=req.params.country; 
    db.collection('wines', function(err, collection) {
        collection.find({ 'country': new RegExp('/'+country+'/i') }).toArray(function(err, items) {
            res.jsonp(items);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

4
推荐指数
1
解决办法
7420
查看次数

'SQL'就像'mongodb中的'声明

有没有MongoDB/mongoose'like'语句,比如SQL语言?使用的唯一原因是全文搜索的实现.

mongoose mongodb

3
推荐指数
1
解决办法
1366
查看次数

Java Spring数据mongodb如何使用通配符?

我的mongodb中有一个名为"name"的字段.我在spring数据中使用注释来支持查询.我的问题是,有没有办法支持通配符?即如果我有名称为"Robert","Roberto""Ramano"的值,我可以支持允许我将"R"传递给函数的查询,并且它将匹配以R开头的所有内容?现在我必须基本上做一个罗伯特的"精确拼写",或任何一个这样的名字来获得完全匹配.

我知道如何直接使用mongodb进行通配符搜索,但我不确定如何使用spring数据在java中进行.我有一个代表我的学生文档的模型类,我使用注释来描述如何查询.

db.users.find({"name": /.*m.*/})
Run Code Online (Sandbox Code Playgroud)

我不知道如何将其转换为java,因为我想传递一个变量.例如:

伪代码:

String myvar = "R";
db.users.find({/.*<variable here>*/})
Run Code Online (Sandbox Code Playgroud)

以下是我在"MongoRepository"实现中的内容:

public interface UserRepository extends MongoRepository<UserId, String> {
{
    @Query("{'name' : {$regex : ?0}}")
    public List<Users> findByName(String username);
}
Run Code Online (Sandbox Code Playgroud)

当我传出全名"罗伯特"时,它就能找到"罗伯特".但是,如果我把"R",它没有找到任何东西.

java spring mongodb spring-data

3
推荐指数
1
解决办法
1553
查看次数

如何在 mongodb 中使用 $regex?

我想在我的数据库中搜索以 FOO 开头或名称中包含 FOO 的客户。为此,我查看了这个问题 ->如何使用“like”查询 MongoDB?

之后,我构建我的查询,使其看起来像这样 - >

Customer.find({'name': '/FOO/'}).exec(function (err, customer) {
     console.log(customer);
})
Run Code Online (Sandbox Code Playgroud)

但是虽然里面有一个带有 FOO 的客户,但'name'我没有得到任何结果。如果我修改我的查询...({'name': 'FOO'})...而不是...({'name': '/FOO/'})...我得到我的客户。我究竟做错了什么?

mongoose mongodb

3
推荐指数
1
解决办法
132
查看次数

Mongo 按单词首字母搜索查询

我正在与 MONGO 一起从事我当前的项目,如果我正在搜索一个字母需要搜索每个单词,我需要一个查询

例如:我的数据库中有 3 个主题,如下所示

化学、化学、有机化学

我试过像下面这样的查询

db.topics.find({name: { '$regex': '^che', '$options': 'i' }}, {})
Run Code Online (Sandbox Code Playgroud)

但我只得到化学和化学的结果

但我的要求是,如果我用che搜索,那么这封信需要检查每个单词的第一个字母,结果还带有化学、化学和有机化学(因为在有机化学中,单词以che mistry开头)

mongodb

2
推荐指数
1
解决办法
7216
查看次数

当模式中有一个字母时,mogodb RegEx返回所有记录

我在mongodb中有一个集合(RDBMS中的表),其中包含邮件接收者的名称.

名称可能包含普通英文字符或日文字符或两者的组合.

RegExp用来查找与我传递的模式匹配的名称,下面是代码

db.user_logs.find({ "recipientName": new RegExp(".*??*", "i") })
Run Code Online (Sandbox Code Playgroud)

这将返回名称中任何位置包含"汉字"的所有记录

但是当我使用的时候

db.user_logs.find({ "recipientName": new RegExp(".*?*", "i") })

它返回所有记录,无论它是否包含"汉".

我的要求是我只需要那些"汉"存在于任何位置的记录

同样的英语角色正在发生.

regex mongodb

1
推荐指数
1
解决办法
225
查看次数

如何在Mongo db上用Java搜索文本

如何在Java中为Mongo DB编写此查询的等效项:

db.mydata.find({$where: "this.fields.name.toLowerCase().indexOf('ar') > 0"})
Run Code Online (Sandbox Code Playgroud)

该查询用于查找包含"AR"(马丁,标记等)的所有名称.

我目前正在使用QueryBuilder,但它不支持这种查询格式.

任何的想法?

java mongodb

-1
推荐指数
1
解决办法
472
查看次数

标签 统计

mongodb ×8

java ×2

mongoose ×2

arrays ×1

node.js ×1

regex ×1

spring ×1

spring-data ×1