我无法找到任何记录在案的地方.默认情况下,find()操作将从头开始获取记录.我怎样才能获得mongodb中的最后N条记录?
编辑:我也希望返回的结果从最近到最近排序,而不是相反.
如何在MongoDB中执行SQL Join等效项?
例如,假设你有两个集合(用户和评论),我想用pid = 444以及每个集合的用户信息来提取所有评论.
comments
{ uid:12345, pid:444, comment="blah" }
{ uid:12345, pid:888, comment="asdf" }
{ uid:99999, pid:444, comment="qwer" }
users
{ uid:12345, name:"john" }
{ uid:99999, name:"mia" }
Run Code Online (Sandbox Code Playgroud)
有没有办法用一个字段拉出所有评论(例如......查找({pid:444}))以及与每个评论相关的用户信息?
目前,我首先得到符合我标准的评论,然后找出该结果集中的所有uid,获取用户对象,并将它们与评论的结果合并.好像我做错了.
我想要的不是Redis和MongoDB之间的比较.我知道他们是不同的; 性能和API完全不同.
Redis非常快,但API非常'原子'.MongoDB将占用更多资源,但API非常易于使用,我对此非常满意.
它们都很棒,我想尽可能多地使用Redis进行部署,但是很难编码.我想尽可能多地在开发中使用MongoDB,但它需要一台昂贵的机器.
那么你怎么看待它们的使用呢?什么时候选Redis?什么时候选择MongoDB?
我的MongoDB数据库名称中有一个拼写错误,我正在寻找重命名数据库.
我可以这样复制和删除......
db.copyDatabase('old_name', 'new_name');
use old_name
db.dropDatabase();
Run Code Online (Sandbox Code Playgroud)
是否有重命名数据库的命令?
如果我有这个架构......
person = {
name : String,
favoriteFoods : Array
}
Run Code Online (Sandbox Code Playgroud)
... favoriteFoods数组中填充了字符串.我怎样才能找到所有使用猫鼬"寿司"作为他们最喜欢的食物的人?
我希望有类似的东西:
PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...});
Run Code Online (Sandbox Code Playgroud)
(我知道$contains在mongodb中没有,只是在了解解决方案之前解释我期望找到的内容)
我的所有记录都有一个名为"图片"的字段.该字段是一个字符串数组.
我现在想要这个数组不为空的最新10条记录.
我已经google了一下,但奇怪的是我在这方面找不到多少.我已经阅读了$ where选项,但我想知道本机函数有多慢,以及是否有更好的解决方案.
即便如此,这不起作用:
ME.find({$where: 'this.pictures.length > 0'}).sort('-created').limit(10).execFind()
Run Code Online (Sandbox Code Playgroud)
什么都不返回 离开this.pictures没有长度位确实有效,但当然它也返回空记录.
我在MongoDB上进行开发.对于完全非邪恶的目的,我有时想要吹掉数据库中的所有东西 - 也就是说,删除每一个集合,以及其他任何可能存在的东西,并从头开始.是否有一行代码可以让我这样做?同时给出MongoDB控制台方法和MongoDB Ruby驱动程序方法的加分点.
我今天第一次使用我的新Mac.我正在关注mongodb.org上的入门指南,直到创建/ data/db目录的步骤.顺便说一句,我用的是自制路线.
所以我打开一个终端,我想我就是你所谓的主目录,因为当我做"ls"时,我会看到桌面应用电影音乐图片文档和图书馆的文件夹.
所以我做了一个
mkdir -p /data/db
Run Code Online (Sandbox Code Playgroud)
首先,它表示许可被拒绝.我一直在尝试不同的事情半小时,最后:
mkdir -p data/db
Run Code Online (Sandbox Code Playgroud)
工作.当我"ls",一个数据目录并嵌套在其中一个db文件夹确实存在.
然后我启动mongod并抱怨没有找到data/db
我做错了什么吗?
现在我已经完成了
sudo mkdir -p /data/db
Run Code Online (Sandbox Code Playgroud)
当我做"ls"时,我确实看到了数据目录和db目录.虽然db dir里面没有任何东西,当我现在运行mongod时
Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit:
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个运算符,它允许我检查一个字段的值是否包含某个字符串.
就像是:
db.users.findOne({$contains:{"username":"son"}})
Run Code Online (Sandbox Code Playgroud)
那可能吗?