我正在制作一个使用经典"跟随"机制的应用程序(Twitter和网络上的许多其他应用程序使用的机制).我正在使用MongoDB.不过,我的系统有所不同:用户可以关注用户组.这意味着,如果您关注某个群组,您将自动关注该群组成员的所有用户.当然,用户可以属于多个组.
这就是我想出的:
following用户A文档中的嵌入式阵列(被叫)中following数组中删除了后续用户的id组以相同的方式工作:当用户A跟随组X时,组X的 id被添加到following数组中.(我实际上添加了一个,DBRef所以我知道连接是针对用户还是组.)
当我必须检查用户A是否跟随组X时,我只是在用户A的后续数组中搜索组的ID .
$or条件来检查用户A是直接跟踪用户B还是通过组跟踪.像这样:
db.users.find({'$or':{'following.ref.$id':$user_id,'following.ref.$ref','users'},{'following.ref.$id':{'$in':$group_ids},'following.ref.$ref':'groups'}}})
这很好,但我想我有一些问题.例如,如何显示特定用户的关注者列表,包括分页?我不能在嵌入文档上使用skip()和limit().
我可以改变设计并使用一个userfollow集合,它可以完成嵌入式following文档的相同工作.我尝试过这种方法的问题是,根据$or我之前使用的条件,跟随两个包含相同用户的组的用户将被列出两次.为了避免这种情况,我可以使用group或MapReduce,我实际上做了它并且它可以工作,但我希望避免这样做以保持简单.也许我只需要开箱即用.或者也许我在两次尝试时采取了错误的方法.任何人都必须做类似的事情并提出更好的解决方案?
(这实际上是对我这个老问题的后续跟进.我决定发布一个新问题来更好地解释我的新情况;我希望这不是问题.)
当控制器返回json结果时,对象名称似乎丢失了,我通常不介意,但flexbox jquery插件需要特定格式的json结果.
Flexcombobox预期的格式
{"results":[
{"id":"1","name":"Ant"},
{"id":"2","name":"Bear"},
{"id":"3","name":"Cat"},
{"id":"4","name":"Dog"},
{"id":"5","name":"Elephant"},
{"id":"6","name":"Fox"},
{"id":"7","name":"Guinea Pig"},
{"id":"8","name":"Horse"},
{"id":"9","name":"Iguana"},
{"id":"10","name":"Jaguar"}
]}
Run Code Online (Sandbox Code Playgroud)
类
Public Class FlexboxResult
Private _id As String
Public Property Id() As String
Get
Return _id
End Get
Set(ByVal value As String)
_id = value
End Set
End Property
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
控制器代码
Function PartYearsList() As JsonResult
Dim yearSelectList As …Run Code Online (Sandbox Code Playgroud) 我上课了 public class GAE_SERVLETREQUESTServlet extends HttpServlet {
不确定规范关于HTTPServlet的回收的说法:servlet容器是否应该在每个传入请求上创建此类的新实例,或者实现可以在请求之间重用类?
我正在调查一个有趣的问题,似乎在GAE_SERVLETREQUESTServlet实例上创建的Map维护请求之间的状态.
我正在编写一个框架,我有一个自定义init方法的对象:
@implementation OSDatabase
@synthesize database;
// MEM
- (void)dealloc {
sqlite3_close(database);
[super dealloc];
}
// INIT
- (id)initWithDatabasePath:(NSString *)path error:(NSError **)error {
if (self = [super init]) {
if (!sqlite3_open_v2([path UTF8String], &database, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)) {
error = [NSError errorWithDomain:@"OSDatabaseErrorDomain" code:1 userInfo:nil];
[self dealloc];
return nil;
}
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
如果出现错误dealloc,在init方法内部调用是否安全?我不确定这一点,记忆管理是我生命中最重要的事情之一.
谢谢.
我试图在MVC中更新一个简单的模型,但它不起作用,它抛出一个异常,说模型无法更新:
[HttpPost]
public ActionResult SignIn([Bind(Exclude="TxtEmail")]Usuarios usuario,FormCollection fc)
{
try
{
UsuariosModel userModel = new UsuariosModel(usuario);
userModel.Usuarios.TxtEmail = "test@test.com";
UpdateModel(userModel);
if (ModelState.IsValid)
{
[...]
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
这是模型:
[Required(ErrorMessage="**O email é requerido")]
[RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$",ErrorMessage="**Email Inválido")]
public string TxtEmail
{
get { return this.txt_email; }
set { this.txt_email = value; }
}
Run Code Online (Sandbox Code Playgroud)
我如何使用此方法"UpdateModel"?
我认为标题本身就说我想做什么?
斯蒂尔,让我澄清一下.我现在正在开发一个应用程序,我有两个日期格式如下:
"YYYY:MM:DD HH:MM:SS"
使用我需要以格式计算两个日期之间的差异:
HH:MM:SS
我在维基搜索过,也试过我的运气但是徒劳无功.有人可以帮帮我吗?
提前致谢.
关于索引大量数据的性能问题.我有一个大表(约3000万行),其中4列被索引以便快速搜索.目前我设置了索引(索引?),然后导入我的数据.这大约需要4个小时,具体取决于数据库服务器的速度.首先导入数据然后执行索引构建会更快/更有效吗?
我正在使用一些一次性.NET对象编写一些IronPython,并想知道是否有一种很好的"pythonic"方式.目前我有一堆finally语句(我想在每个语句中都应该检查None)或者如果构造函数失败,变量是否甚至不存在?)
def Save(self):
filename = "record.txt"
data = "{0}:{1}".format(self.Level,self.Name)
isf = IsolatedStorageFile.GetUserStoreForApplication()
try:
isfs = IsolatedStorageFileStream(filename, FileMode.Create, isf)
try:
sw = StreamWriter(isfs)
try:
sw.Write(data)
finally:
sw.Dispose()
finally:
isfs.Dispose()
finally:
isf.Dispose()
Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×2
objective-c ×2
dealloc ×1
init ×1
ironpython ×1
java ×1
json ×1
mongodb ×1
nsobject ×1
ocaml ×1
performance ×1
php ×1
python ×1
servlets ×1
t-sql ×1
using ×1
vb.net ×1