标签: mongodb-query

如何用"喜欢"查询MongoDB?

我想查询一下SQL的like查询:

SELECT * FROM users  WHERE name LIKE '%m%'
Run Code Online (Sandbox Code Playgroud)

如何在MongoDB中做同样的事情?
like文档中找不到运算符.

sql mongodb mongodb-query sql-like

1331
推荐指数
27
解决办法
92万
查看次数

查询数组大小大于1的文档

我有一个MongoDB集合,其中包含以下格式的文档:

{
  "_id" : ObjectId("4e8ae86d08101908e1000001"),
  "name" : ["Name"],
  "zipcode" : ["2223"]
}
{
  "_id" : ObjectId("4e8ae86d08101908e1000002"),
  "name" : ["Another ", "Name"],
  "zipcode" : ["2224"]
}
Run Code Online (Sandbox Code Playgroud)

我目前可以获得与特定数组大小匹配的文档:

db.accommodations.find({ name : { $size : 2 }})
Run Code Online (Sandbox Code Playgroud)

这正确地返回name数组中包含2个元素的文档.但是,我无法执行$gt命令返回name字段数组大小超过2的所有文档:

db.accommodations.find({ name : { $size: { $gt : 1 } }})
Run Code Online (Sandbox Code Playgroud)

如何选择name大小大于1 的数组的所有文档(最好不必修改当前数据结构)?

mongodb mongodb-query

611
推荐指数
14
解决办法
33万
查看次数

在两个日期MongoDB之间查找对象

我一直在玩mongodb中的存储推文,每个对象看起来像这样:

{
"_id" : ObjectId("4c02c58de500fe1be1000005"),
"contributors" : null,
"text" : "Hello world",
"user" : {
    "following" : null,
    "followers_count" : 5,
    "utc_offset" : null,
    "location" : "",
    "profile_text_color" : "000000",
    "friends_count" : 11,
    "profile_link_color" : "0000ff",
    "verified" : false,
    "protected" : false,
    "url" : null,
    "contributors_enabled" : false,
    "created_at" : "Sun May 30 18:47:06 +0000 2010",
    "geo_enabled" : false,
    "profile_sidebar_border_color" : "87bc44",
    "statuses_count" : 13,
    "favourites_count" : 0,
    "description" : "",
    "notifications" : null,
    "profile_background_tile" : false,
    "lang" : "en", …
Run Code Online (Sandbox Code Playgroud)

twitter datetime mongodb mongodb-query

364
推荐指数
13
解决办法
56万
查看次数

仅检索MongoDB集合中对象数组中的查询元素

假设我的收藏中有以下文件:

{  
   "_id":ObjectId("562e7c594c12942f08fe4192"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"blue"
      },
      {  
         "shape":"circle",
         "color":"red"
      }
   ]
},
{  
   "_id":ObjectId("562e7c594c12942f08fe4193"),
   "shapes":[  
      {  
         "shape":"square",
         "color":"black"
      },
      {  
         "shape":"circle",
         "color":"green"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

查询:

db.test.find({"shapes.color": "red"}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

要么

db.test.find({shapes: {"$elemMatch": {color: "red"}}}, {"shapes.color": 1})
Run Code Online (Sandbox Code Playgroud)

返回匹配的文档(文档1),但始终包含所有数组项shapes:

{ "shapes": 
  [
    {"shape": "square", "color": "blue"},
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

但是,我想仅使用包含以下内容的数组来获取文档(文档1)color=red:

{ "shapes": 
  [
    {"shape": "circle", "color": "red"}
  ] 
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

projection mongodb mongodb-query aggregation-framework

356
推荐指数
11
解决办法
26万
查看次数

使用另一个字段的值更新MongoDB字段

在MongoDB中,是否可以使用另一个字段中的值更新字段的值?等效的SQL将是这样的:

UPDATE Person SET Name = FirstName + ' ' + LastName
Run Code Online (Sandbox Code Playgroud)

MongoDB伪代码将是:

db.person.update( {}, { $set : { name : firstName + ' ' + lastName } );
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

331
推荐指数
8
解决办法
17万
查看次数

来自MongoDB的随机记录

我希望得到一张巨大的(1亿张唱片)的随机唱片mongodb.

什么是最快,最有效的方法?数据已经存在,并且没有可以生成随机数并获得随机行的字段.

有什么建议?

mongodb mongodb-query

306
推荐指数
11
解决办法
12万
查看次数

获取集合中所有键的名称

我想获取MongoDB集合中所有键的名称.

例如,从这个:

db.things.insert( { type : ['dog', 'cat'] } );
db.things.insert( { egg : ['cat'] } );
db.things.insert( { type : [] } );
db.things.insert( { hello : []  } );
Run Code Online (Sandbox Code Playgroud)

我想得到独特的钥匙:

type, egg, hello
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

301
推荐指数
11
解决办法
18万
查看次数

如何从MongoDB文档中完全删除字段?

{ 
    name: 'book',
    tags: {
        words: ['abc','123'],
        lat: 33,
        long: 22
    }
}
Run Code Online (Sandbox Code Playgroud)

假设这是一份文件.如何words从该集合中的所有文档中完全删除" "?我希望所有文件都没有" words":

 { 
     name: 'book',
     tags: {
         lat: 33,
         long: 22
     }
}
Run Code Online (Sandbox Code Playgroud)

database mongodb mongodb-query

277
推荐指数
9
解决办法
20万
查看次数

MongoDB:将来自多个集合的数据合并为一个..how?

我如何(在MongoDB中)将来自多个集合的数据合并到一个集合中?

我可以使用map-reduce吗?如果是,那么如何?

我非常感谢一些例子,因为我是新手.

mongodb mongodb-query aggregation-framework

214
推荐指数
8
解决办法
26万
查看次数

如何查询嵌套对象?

使用嵌套对象表示法查询mongoDB时遇到问题:

db.messages.find( { headers : { From: "reservations@marriott.com" } } ).count()
0
db.messages.find( { 'headers.From': "reservations@marriott.com" }  ).count()
5
Run Code Online (Sandbox Code Playgroud)

我看不出我做错了什么.我期望嵌套对象表示法返回与点表示法查询相同的结果.我哪里错了?

syntax nested mongodb bson mongodb-query

191
推荐指数
3
解决办法
15万
查看次数